{
 "instance": {
  "escc-20171231.htm": {
   "axisCustom": 0,
   "axisStandard": 16,
   "contextCount": 97,
   "dts": {
    "calculationLink": {
     "local": [
      "escc-20171231_cal.xml"
     ]
    },
    "definitionLink": {
     "local": [
      "escc-20171231_def.xml"
     ]
    },
    "inline": {
     "local": [
      "escc-20171231.htm"
     ]
    },
    "labelLink": {
     "local": [
      "escc-20171231_lab.xml"
     ],
     "remote": [
      "http://xbrl.fasb.org/us-gaap/2017/elts/us-gaap-doc-2017-01-31.xml",
      "http://xbrl.sec.gov/dei/2014/dei-doc-2014-01-31.xml"
     ]
    },
    "presentationLink": {
     "local": [
      "escc-20171231_pre.xml"
     ]
    },
    "referenceLink": {
     "remote": [
      "http://xbrl.fasb.org/us-gaap/2017/elts/us-gaap-ref-2017-01-31.xml",
      "http://xbrl.sec.gov/dei/2014/dei-ref-2014-01-31.xml"
     ]
    },
    "schema": {
     "local": [
      "escc-20171231.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/role/deprecated-2009-12-16.xsd",
      "http://www.xbrl.org/lrr/role/negated-2009-12-16.xsd",
      "http://xbrl.fasb.org/us-gaap/2017/elts/us-gaap-2017-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2017/elts/us-parts-codification-2017-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2017/elts/us-roles-2017-01-31.xsd",
      "http://xbrl.fasb.org/us-gaap/2017/elts/us-types-2017-01-31.xsd",
      "http://xbrl.sec.gov/country/2017/country-2017-01-31.xsd",
      "http://xbrl.sec.gov/dei/2014/dei-2014-01-31.xsd"
     ]
    }
   },
   "elementCount": 417,
   "entityCount": 1,
   "hidden": {
    "http://xbrl.sec.gov/dei/2014-01-31": 11,
    "total": 11
   },
   "keyCustom": 24,
   "keyStandard": 291,
   "memberCustom": 24,
   "memberStandard": 20,
   "nsprefix": "fil",
   "nsuri": "http://www.es.com/20171231",
   "report": {
    "R1": {
     "firstAnchor": {
      "ancestors": [
       "b",
       "span",
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "document",
     "isDefault": "true",
     "longName": "000010 - Document - Document and Entity Information",
     "role": "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation",
     "shortName": "Document and Entity Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "b",
       "span",
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "dei:DocumentType",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R10": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FinanceLoansAndLeasesReceivablePolicy",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000100 - Disclosure - Note 4 - Lease Receivable",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivable",
     "shortName": "Note 4 - Lease Receivable",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:FinanceLoansAndLeasesReceivablePolicy",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R11": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000110 - Disclosure - Note 5 - Leases and deferred gain on disposal of building assets",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssets",
     "shortName": "Note 5 - Leases and deferred gain on disposal of building assets",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R12": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000120 - Disclosure - Note 6 - Employee Retirement Benefit Plans",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlans",
     "shortName": "Note 6 - Employee Retirement Benefit Plans",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R13": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000130 - Disclosure - Note 7 -Debt",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote7Debt",
     "shortName": "Note 7 -Debt",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DebtDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R14": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000140 - Disclosure - Note 8 - Income Taxes",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxes",
     "shortName": "Note 8 - Income Taxes",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:IncomeTaxDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R15": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000150 - Disclosure - Note 9 - Commitments and Contingencies",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote9CommitmentsAndContingencies",
     "shortName": "Note 9 - Commitments and Contingencies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R16": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000160 - Disclosure - Note 10 - Stock Option Plan",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlan",
     "shortName": "Note 10 - Stock Option Plan",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R17": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PreferredStockTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000170 - Disclosure - Note 11 - Preferred Stock",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStock",
     "shortName": "Note 11 - Preferred Stock",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:PreferredStockTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R18": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000180 - Disclosure - Note 12 - Geographic Information",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformation",
     "shortName": "Note 12 - Geographic Information",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R19": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000190 - Disclosure - Note 13 - Significant Customers",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomers",
     "shortName": "Note 13 - Significant Customers",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ConcentrationRiskDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R2": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Cash",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000020 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS",
     "role": "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RestrictedCashAndCashEquivalentsAtCarryingValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R20": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000200 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies (Policies)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies (Policies)",
     "subGroupType": "policies",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:BasisOfAccountingPolicyPolicyTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R21": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
       "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock",
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestrictedAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000210 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
       "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock",
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:RestrictedAssetsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R22": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000220 - Disclosure - Note 3 - Costs and Estimated Earnings on Uncompleted Contracts (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsTables",
     "shortName": "Note 3 - Costs and Estimated Earnings on Uncompleted Contracts (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R23": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeasesOfLessorDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000230 - Disclosure - Note 4 - Lease Receivable (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableTables",
     "shortName": "Note 4 - Lease Receivable (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LeasesOfLessorDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R24": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000240 - Disclosure - Note 5 - Leases and deferred gain on disposal of building assets (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsTables",
     "shortName": "Note 5 - Leases and deferred gain on disposal of building assets (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R25": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fil:SettlementofthepensionplanliabilitiestextblockTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000250 - Disclosure - Note 6 - Employee Retirement Benefit Plans (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansTables",
     "shortName": "Note 6 - Employee Retirement Benefit Plans (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fil:SettlementofthepensionplanliabilitiestextblockTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R26": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000260 - Disclosure - Note 7 -Debt (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote7DebtTables",
     "shortName": "Note 7 -Debt (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfDebtTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R27": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000270 - Disclosure - Note 8 - Income Taxes (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesTables",
     "shortName": "Note 8 - Income Taxes (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R28": {
     "firstAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000280 - Disclosure - Note 10 - Stock Option Plan (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanTables",
     "shortName": "Note 10 - Stock Option Plan (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R29": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000290 - Disclosure - Note 12 - Geographic Information (Tables)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationTables",
     "shortName": "Note 12 - Geographic Information (Tables)",
     "subGroupType": "tables",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R3": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockNoParValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "UsdPerShare",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000030 - Statement - CONDENSED CONSOLIDATED BALANCE SHEETS - Parenthetical",
     "role": "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical",
     "shortName": "CONDENSED CONSOLIDATED BALANCE SHEETS - Parenthetical",
     "subGroupType": "parenthetical",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockNoParValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "UsdPerShare",
      "xsiNil": "false"
     }
    },
    "R30": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashUninsuredAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000300 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Cash and Cash Equivalents (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Cash and Cash Equivalents (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CashAndCashEquivalentsPolicyTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CashUninsuredAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R31": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Cash",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000310 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Restricted Cash: Schedule of Restricted Cash (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRestrictedCashScheduleOfRestrictedCashDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Restricted Cash: Schedule of Restricted Cash (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:RestrictedCashAndCashEquivalents",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R32": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "us-gaap:TradeAndOtherAccountsReceivablePolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E16",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000320 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Trade Accounts Receivable: Schedule of Doubtful Accounts (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTradeAccountsReceivableScheduleOfDoubtfulAccountsDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Trade Accounts Receivable: Schedule of Doubtful Accounts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
       "us-gaap:TradeAndOtherAccountsReceivablePolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E15",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:AllowanceForDoubtfulAccountsReceivable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R33": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryWriteDown",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000330 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Inventories (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Inventories (Details)",
     "subGroupType": "details",
     "uniqueAnchor": null
    },
    "R34": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:InventoryPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterials",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000340 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Inventories: Schedule of Inventory (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesScheduleOfInventoryDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Inventories: Schedule of Inventory (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfInventoryCurrentTableTextBlock",
       "us-gaap:InventoryPolicyTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:InventoryRawMaterials",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R35": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000350 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Property and Equipment: Schedule of Depreciation (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Property and Equipment: Schedule of Depreciation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PropertyPlantAndEquipmentTextBlock",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Depreciation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R36": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y16",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000360 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Intangible Assets (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Intangible Assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IntangibleAssetsFiniteLivedPolicy",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y16",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:AmortizationOfIntangibleAssets",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R37": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E16",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000370 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Warranty Reserve: Schedule of Product Warranty Reserve (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesWarrantyReserveScheduleOfProductWarrantyReserveDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Warranty Reserve: Schedule of Product Warranty Reserve (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfProductWarrantyLiabilityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E15",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ProductWarrantyAccrual",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R38": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:SalesRevenueNet",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000380 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Revenue Recognition: Schedule of Revenue Recognition (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Revenue Recognition: Schedule of Revenue Recognition (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:OtherSalesRevenueNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R39": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000390 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Net Income Per Common Share: Schedule of Net Income Per Common Share (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies: Net Income Per Common Share: Schedule of Net Income Per Common Share (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NetIncomeLoss",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R4": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:SalesRevenueNet",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000040 - Statement - CONSOLIDATED STATEMENTS OF OPERATIONS",
     "role": "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
     "shortName": "CONSOLIDATED STATEMENTS OF OPERATIONS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:CostOfGoodsAndServicesSold",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R40": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:Goodwill",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000400 - Disclosure - Note 2 - Goodwill (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote2GoodwillDetails",
     "shortName": "Note 2 - Goodwill (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:GoodwillDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y06",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:PaymentsToAcquireBusinessesGross",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R41": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
       "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "fil:TotalAccumulatedCostsAndEstimatedEarningsOnUncompletedContracts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000410 - Disclosure - Note 3 - Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs and Estimated Earnings on Uncompleted Contracts (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsAndEstimatedEarningsOnUncompletedContractsDetails",
     "shortName": "Note 3 - Costs and Estimated Earnings on Uncompleted Contracts: Schedule of Costs and Estimated Earnings on Uncompleted Contracts (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
       "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "fil:TotalAccumulatedCostsAndEstimatedEarningsOnUncompletedContracts",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R42": {
     "firstAnchor": {
      "ancestors": [
       "us-gaap:FinanceLoansAndLeasesReceivablePolicy",
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fil:LeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000420 - Disclosure - Note 4 - Lease Receivable (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails",
     "shortName": "Note 4 - Lease Receivable (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "us-gaap:FinanceLoansAndLeasesReceivablePolicy",
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "fil:LeaseTerm",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R43": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:NontradeReceivablesCurrent",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000430 - Disclosure - Note 4 - Lease Receivable: Schedule of Lease Receivable (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableScheduleOfLeaseReceivableDetails",
     "shortName": "Note 4 - Lease Receivable: Schedule of Lease Receivable (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:LeasesOfLessorDisclosureTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:NontradeReceivables",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R44": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LeaseAndRentalExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000440 - Disclosure - Note 5 - Leases and deferred gain on disposal of building assets (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsDetails",
     "shortName": "Note 5 - Leases and deferred gain on disposal of building assets (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LeaseAndRentalExpense",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R45": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
       "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17_LeaseArrangementType-MinimumLeasePmt",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000450 - Disclosure - Note 5 - Leases and deferred gain on disposal of building assets: Schedule of Future Minimum Payments for Operating Leases (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails",
     "shortName": "Note 5 - Leases and deferred gain on disposal of building assets: Schedule of Future Minimum Payments for Operating Leases (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
       "us-gaap:OperatingLeasesOfLesseeDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17_LeaseArrangementType-MinimumLeasePmt",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R46": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "I150421",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "fil:PensionPlanSettlementAgreementAmountPayable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000460 - Disclosure - Note 6 - Employee Retirement Benefit Plans (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails",
     "shortName": "Note 6 - Employee Retirement Benefit Plans (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "I150421",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "fil:PensionPlanSettlementAgreementAmountPayable",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R47": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "fil:PensionSettlementObligationCurrent",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000470 - Disclosure - Note 6 - Employee Retirement Benefit Plans: Schedule of Settlement of Pension Plan Liabilities (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfSettlementOfPensionPlanLiabilitiesDetails",
     "shortName": "Note 6 - Employee Retirement Benefit Plans: Schedule of Settlement of Pension Plan Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "fil:SettlementofthepensionplanliabilitiestextblockTextBlock",
       "us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "lang": null,
      "name": "fil:PensionSettlementObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R48": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E16",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanBenefitObligation",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000480 - Disclosure - Note 6 - Employee Retirement Benefit Plans: Schedule of Costs of Retirement Plans, changes in benefit obligation (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfCostsOfRetirementPlansChangesInBenefitObligationDetails",
     "shortName": "Note 6 - Employee Retirement Benefit Plans: Schedule of Costs of Retirement Plans, changes in benefit obligation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E15",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanBenefitObligation",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R49": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanFundedStatusOfPlan",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000490 - Disclosure - Note 6 - Employee Retirement Benefit Plans: Schedule of Amounts Recognized in Other Comprehensive Income (Loss) (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossDetails",
     "shortName": "Note 6 - Employee Retirement Benefit Plans: Schedule of Amounts Recognized in Other Comprehensive Income (Loss) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanFundedStatusOfPlan",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R5": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E15_StEqComps-CommonStock",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000050 - Statement - CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (DEFICIT)",
     "role": "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT",
     "shortName": "CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (DEFICIT)",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E15_StEqComps-CommonStock",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R50": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAmountsRecognizedInBalanceSheetTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PensionAndOtherPostretirementAndPostemploymentBenefitPlansLiabilitiesCurrentAndNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000500 - Disclosure - Note 6 - Employee Retirement Benefit Plans: Schedule of Amounts Recognized in Balance Sheet (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInBalanceSheetDetails",
     "shortName": "Note 6 - Employee Retirement Benefit Plans: Schedule of Amounts Recognized in Balance Sheet (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfAmountsRecognizedInBalanceSheetTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:PensionAndOtherPostretirementAndPostemploymentBenefitPlansLiabilitiesCurrentAndNoncurrent",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R51": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "ix:continuation",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanInterestCost",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000510 - Disclosure - Note 6 - Employee Retirement Benefit Plans: Schedule of Net Periodic Benefit Cost (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfNetPeriodicBenefitCostDetails",
     "shortName": "Note 6 - Employee Retirement Benefit Plans: Schedule of Net Periodic Benefit Cost (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfNetPeriodicBenefitCostNotYetRecognizedTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanAmortizationOfGainsLosses",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R52": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfExpectedBenefitPaymentsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanExpectedFutureBenefitPaymentsNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000520 - Disclosure - Note 6 - Employee Retirement Benefit Plans: Schedule of Expected Benefit Payments (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails",
     "shortName": "Note 6 - Employee Retirement Benefit Plans: Schedule of Expected Benefit Payments (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfExpectedBenefitPaymentsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:DefinedBenefitPlanExpectedFutureBenefitPaymentsNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R53": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LongTermDebt",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000530 - Disclosure - Note 7 -Debt: Schedule of Long-term Debt (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails",
     "shortName": "Note 7 -Debt: Schedule of Long-term Debt (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDebtTableTextBlock",
       "us-gaap:DebtDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17_LongtermDebtType-FirstMortgageNotePay",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DebtInstrumentPeriodicPayment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R54": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000540 - Disclosure - Note 7 -Debt: Schedule of Principal maturities (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails",
     "shortName": "Note 7 -Debt: Schedule of Principal maturities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R55": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000550 - Disclosure - Note 7 -Debt (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails",
     "shortName": "Note 7 -Debt (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17_DebtInstr-LineOfCredit1",
      "decimals": null,
      "lang": "en-US",
      "name": "us-gaap:DebtInstrumentInterestRateTerms",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R56": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000560 - Disclosure - Note 8 - Income Taxes (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails",
     "shortName": "Note 8 - Income Taxes (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R57": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000570 - Disclosure - Note 8 - Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails",
     "shortName": "Note 8 - Income Taxes: Schedule of Effective Income Tax Rate Reconciliation (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R58": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000580 - Disclosure - Note 8 - Income Taxes: Schedule of Deferred Income Tax Assets and Liabilities (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails",
     "shortName": "Note 8 - Income Taxes: Schedule of Deferred Income Tax Assets and Liabilities (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:DeferredTaxAssetsPropertyPlantAndEquipment",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R59": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000590 - Disclosure - Note 8 - Income Taxes: Schedule of Worldwide Income Before Income Taxes (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfWorldwideIncomeBeforeIncomeTaxesDetails",
     "shortName": "Note 8 - Income Taxes: Schedule of Worldwide Income Before Income Taxes (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
       "us-gaap:IncomeTaxDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R6": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ProfitLoss",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "statement",
     "isDefault": "false",
     "longName": "000060 - Statement - CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "role": "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
     "shortName": "CONSOLIDATED STATEMENTS OF CASH FLOWS",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:DepreciationAndAmortization",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R60": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000600 - Disclosure - Note 8 - Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails",
     "shortName": "Note 8 - Income Taxes: Schedule of Components of Income Tax Expense (Benefit) (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:CurrentFederalTaxExpenseBenefit",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R61": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000610 - Disclosure - Note 9 - Commitments and Contingencies (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote9CommitmentsAndContingenciesDetails",
     "shortName": "Note 9 - Commitments and Contingencies (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:CommitmentsAndContingenciesDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:LettersOfCreditOutstandingAmount",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R62": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "UsdPerShare",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000620 - Disclosure - Note 10 - Stock Option Plan (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails",
     "shortName": "Note 10 - Stock Option Plan (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
      "reportCount": 1,
      "unique": true,
      "unitRef": "UsdPerShare",
      "xsiNil": "false"
     }
    },
    "R63": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E16",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000630 - Disclosure - Note 10 - Stock Option Plan: Schedule of Stock Option Plan Activity (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails",
     "shortName": "Note 10 - Stock Option Plan: Schedule of Stock Option Plan Activity (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E15",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R64": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000640 - Disclosure - Note 10 - Stock Option Plan: Schedule of Stock Options Valuation Assumptions (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionsValuationAssumptionsDetails",
     "shortName": "Note 10 - Stock Option Plan: Schedule of Stock Options Valuation Assumptions (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
       "ix:continuation",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R65": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "reportCount": 1,
      "unitRef": "Shares",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000650 - Disclosure - Note 11 - Preferred Stock (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails",
     "shortName": "Note 11 - Preferred Stock (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:PreferredStockTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "E17_StClStock-PrefClassA",
      "decimals": "INF",
      "lang": null,
      "name": "us-gaap:PreferredStockSharesAuthorized",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Shares",
      "xsiNil": "false"
     }
    },
    "R66": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": "-3",
      "first": true,
      "lang": null,
      "name": "us-gaap:SalesRevenueNet",
      "reportCount": 1,
      "unitRef": "USD",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000660 - Disclosure - Note 12 - Geographic Information: Schedule of Sales by Geographic Location (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails",
     "shortName": "Note 12 - Geographic Information: Schedule of Sales by Geographic Location (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "td",
       "tr",
       "table",
       "us-gaap:ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
       "us-gaap:RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17_StGeo-US",
      "decimals": "-3",
      "lang": null,
      "name": "us-gaap:SalesRevenueNet",
      "reportCount": 1,
      "unique": true,
      "unitRef": "USD",
      "xsiNil": "false"
     }
    },
    "R67": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17_ConcentrationRiskByBenchmark-AcctRecv_MajCust-CustomerA",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000670 - Disclosure - Note 13 - Significant Customers (Details)",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails",
     "shortName": "Note 13 - Significant Customers (Details)",
     "subGroupType": "details",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "us-gaap:ConcentrationRiskDisclosureTextBlock",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17_ConcentrationRiskByBenchmark-AcctRecv_MajCust-CustomerA",
      "decimals": "INF",
      "first": true,
      "lang": null,
      "name": "us-gaap:ConcentrationRiskPercentage1",
      "reportCount": 1,
      "unique": true,
      "unitRef": "Pure",
      "xsiNil": "false"
     }
    },
    "R7": {
     "firstAnchor": {
      "ancestors": [
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000070 - Disclosure - Note 1 - Nature of Operations and Summary of Significant Accounting Policies",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPolicies",
     "shortName": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "p",
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R8": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000080 - Disclosure - Note 2 - Goodwill",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote2Goodwill",
     "shortName": "Note 2 - Goodwill",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:GoodwillDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    },
    "R9": {
     "firstAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     },
     "groupType": "disclosure",
     "isDefault": "false",
     "longName": "000090 - Disclosure - Note 3 - Costs and Estimated Earnings on Uncompleted Contracts",
     "role": "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContracts",
     "shortName": "Note 3 - Costs and Estimated Earnings on Uncompleted Contracts",
     "subGroupType": "",
     "uniqueAnchor": {
      "ancestors": [
       "div",
       "body",
       "html"
      ],
      "contextRef": "Y17",
      "decimals": null,
      "first": true,
      "lang": "en-US",
      "name": "us-gaap:LongTermContractsOrProgramsDisclosureTextBlock",
      "reportCount": 1,
      "unique": true,
      "unitRef": null,
      "xsiNil": "false"
     }
    }
   },
   "segmentCount": 44,
   "tag": {
    "country_US": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "UNITED STATES"
       }
      }
     },
     "localname": "US",
     "nsuri": "http://xbrl.sec.gov/country/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "dei_AmendmentDescription": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Description of changes contained within amended document.",
        "label": "Amendment Description"
       }
      }
     },
     "localname": "AmendmentDescription",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "stringItemType"
    },
    "dei_AmendmentFlag": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "If the value is true, then the document is an amendment to previously-filed/accepted document.",
        "label": "Amendment Flag"
       }
      }
     },
     "localname": "AmendmentFlag",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "booleanItemType"
    },
    "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/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_ContainedFileInformationFileNumber": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The SEC Document Number of the contained file.",
        "label": "Contained File Information, File Number"
       }
      }
     },
     "localname": "ContainedFileInformationFileNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_CurrentFiscalYearEndDate": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "End date of current fiscal year in the format --MM-DD.",
        "label": "Fiscal Year End"
       }
      }
     },
     "localname": "CurrentFiscalYearEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "gMonthDayItemType"
    },
    "dei_DocumentFiscalPeriodFocus": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This is focus fiscal period of the document report. For a first quarter 2006 quarterly report, which may also provide financial information from prior periods, the first fiscal quarter should be given as the fiscal period focus. Values: FY, Q1, Q2, Q3, Q4, H1, H2, M9, T1, T2, T3, M8, CY.",
        "label": "Document Fiscal Period Focus"
       }
      }
     },
     "localname": "DocumentFiscalPeriodFocus",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "fiscalPeriodItemType"
    },
    "dei_DocumentFiscalYearFocus": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "This is focus fiscal year of the document report in CCYY 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/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "gYearItemType"
    },
    "dei_DocumentPeriodEndDate": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The end date of the period reflected on the cover page if a periodic report. For all other reports and registration statements containing historical data, it is the date up through which that historical data is presented.  If there is no historical data in the report, use the filing date. The format of the date is CCYY-MM-DD.",
        "label": "Period End date"
       }
      }
     },
     "localname": "DocumentPeriodEndDate",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "dateItemType"
    },
    "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": "SEC Form"
       }
      }
     },
     "localname": "DocumentType",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "submissionTypeItemType"
    },
    "dei_EntityAddressAddressLine1": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Address Line 1 such as Building Name, Street Name",
        "label": "Entity Address, Address Line One"
       }
      }
     },
     "localname": "EntityAddressAddressLine1",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityCentralIndexKey": {
     "auth_ref": [
      "r352"
     ],
     "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": "Registrant CIK"
       }
      }
     },
     "localname": "EntityCentralIndexKey",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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": "Number of common stock shares outstanding"
       }
      }
     },
     "localname": "EntityCommonStockSharesOutstanding",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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": "Current with reporting"
       }
      }
     },
     "localname": "EntityCurrentReportingStatus",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityFilerCategory": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Indicate whether the registrant is one of the following: (1) Large Accelerated Filer, (2) Accelerated Filer, (3) Non-accelerated Filer, (4) Smaller Reporting Company (Non-accelerated) or (5) Smaller Reporting 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": "Filer Category"
       }
      }
     },
     "localname": "EntityFilerCategory",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "filerCategoryItemType"
    },
    "dei_EntityIncorporationStateCountryName": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "State or Country Name where an entity is incorporated",
        "label": "Entity Incorporation, State Country Name"
       }
      }
     },
     "localname": "EntityIncorporationStateCountryName",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityPublicFloat": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "State aggregate market value of voting and non-voting common equity held by non-affiliates computed by reference to price at which the common equity was last sold, or average bid and asked price of such common equity, as of the last business day of registrant's most recently completed second fiscal quarter. The public float should be reported on the cover page of the registrants form 10K.",
        "label": "Public Float"
       }
      }
     },
     "localname": "EntityPublicFloat",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "monetaryItemType"
    },
    "dei_EntityRegistrantName": {
     "auth_ref": [
      "r352"
     ],
     "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": "Registrant Name"
       }
      }
     },
     "localname": "EntityRegistrantName",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "dei_EntityTaxIdentificationNumber": {
     "auth_ref": [
      "r352"
     ],
     "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": "Tax Identification Number (TIN)"
       }
      }
     },
     "localname": "EntityTaxIdentificationNumber",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "nineDigitItemType"
    },
    "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": "Voluntary filer"
       }
      }
     },
     "localname": "EntityVoluntaryFilers",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "yesNoItemType"
    },
    "dei_EntityWellKnownSeasonedIssuer": {
     "auth_ref": [],
     "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": "Well-known Seasoned Issuer"
       }
      }
     },
     "localname": "EntityWellKnownSeasonedIssuer",
     "nsuri": "http://xbrl.sec.gov/dei/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "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/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "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/2014-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DocumentDocumentAndEntityInformation"
     ],
     "xbrltype": "normalizedStringItemType"
    },
    "fil_AccumulatedCostsAndEstimatedEarningsOnUncompletedContracts": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Net amount of accumulated costs and estimated earnings on uncompleted contracts, net of total billings on uncompleted contracts",
        "label": "Accumulated costs and estimated earnings on uncompleted contracts, net"
       }
      }
     },
     "localname": "AccumulatedCostsAndEstimatedEarningsOnUncompletedContracts",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsAndEstimatedEarningsOnUncompletedContractsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_AccumulatedOtherComprehensiveLoss": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The balance of accumulated other comprehensive loss at the year end",
        "label": "Accumulated other comprehensive loss {1}",
        "terseLabel": "Accumulated other comprehensive loss"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveLoss",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInBalanceSheetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_BaseRentAfterLeaseExtension": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The base annual rent per the extended 5-year term.",
        "label": "Base Rent After Lease Extension"
       }
      }
     },
     "localname": "BaseRentAfterLeaseExtension",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_CashPaidDuringThePeriodForAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the description of Cash paid during the period for:, during the indicated time period.",
        "label": "Cash paid during the year for:"
       }
      }
     },
     "localname": "CashPaidDuringThePeriodForAbstract",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "fil_CompletedContractMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Completed Contract"
       }
      }
     },
     "localname": "CompletedContractMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_CostsAndEstimatedEarningsInExcessOfBillingsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Costs And Estimated Earnings In Excess Of Billings"
       }
      }
     },
     "localname": "CostsAndEstimatedEarningsInExcessOfBillingsMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_CustomerAMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Customer A"
       }
      }
     },
     "localname": "CustomerAMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_CustomerCMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Customer C"
       }
      }
     },
     "localname": "CustomerCMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_CustomerDMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Customer D"
       }
      }
     },
     "localname": "CustomerDMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_CustomerEMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Customer E"
       }
      }
     },
     "localname": "CustomerEMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_CustomerFMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Customer F"
       }
      }
     },
     "localname": "CustomerFMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_DenominatorAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the description of Denominator, during the indicated time period.",
        "label": "Denominator"
       }
      }
     },
     "localname": "DenominatorAbstract",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fil_DirectorsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Directors"
       }
      }
     },
     "localname": "DirectorsMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_EsccTotalBillingsOnUncompletedContracts": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Total billings on uncompleted contracts",
        "label": "Less total billings on uncompleted contracts"
       }
      }
     },
     "localname": "EsccTotalBillingsOnUncompletedContracts",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsAndEstimatedEarningsOnUncompletedContractsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_ExpireOnVariousDatesMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Expire On Various Dates"
       }
      }
     },
     "localname": "ExpireOnVariousDatesMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_FairValueOfLeaseEquipment": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the monetary amount of Fair value of lease equipment, as of the indicated date.",
        "label": "Fair value of lease equipment"
       }
      }
     },
     "localname": "FairValueOfLeaseEquipment",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_FederalResearchCredits": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "us-gaap:IncomeTaxAuthorityAxis~us-gaap:InternalRevenueServiceIRSMember",
        "label": "Federal research credits"
       }
      }
     },
     "localname": "FederalResearchCredits",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_FirstMortgageNotePayableMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "First Mortgage Note Payable"
       }
      }
     },
     "localname": "FirstMortgageNotePayableMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_FirstYearMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "First Year"
       }
      }
     },
     "localname": "FirstYearMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_GainFromBuildingdisposalAndLeaseextinguishmentToBeRecognized": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Gain fromBuilding disposal and Lease extinguishment, to be recognized over the 5 years",
        "label": "Gain from Building disposal and Lease extinguishment, to be recognized"
       }
      }
     },
     "localname": "GainFromBuildingdisposalAndLeaseextinguishmentToBeRecognized",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_GainFromExtinguishmentOfDeferredRentCreditToBeRecognized": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Gain from extinguishment of deferred rent credit, to be recognized over the five years",
        "label": "Gain from extinguishment of deferred rent credit, to be recognized"
       }
      }
     },
     "localname": "GainFromExtinguishmentOfDeferredRentCreditToBeRecognized",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_GainOnBuildingMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Gain On Building"
       }
      }
     },
     "localname": "GainOnBuildingMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_GainOnLandMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Gain on Land"
       }
      }
     },
     "localname": "GainOnLandMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_IncreaseDecreaseInDeferredRentObligation": {
     "auth_ref": [],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 15.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the monetary amount of Decrease in deferred rent obligation, during the indicated time period.",
        "label": "Decrease in deferred rent obligation"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeferredRentObligation",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_IntercreditorAgreementMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Intercreditor Agreement"
       }
      }
     },
     "localname": "IntercreditorAgreementMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_InternationalMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "International {1}",
        "terseLabel": "International"
       }
      }
     },
     "localname": "InternationalMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_LeaseTerm": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the Lease term, during the indicated time period.",
        "label": "Lease term"
       }
      }
     },
     "localname": "LeaseTerm",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "fil_LineOfCredit1Member": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Line Of Credit 1"
       }
      }
     },
     "localname": "LineOfCredit1Member",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_MinimumExercisePriceForOptions": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Minimum exercise price for options",
        "label": "Minimum exercise price for options"
       }
      }
     },
     "localname": "MinimumExercisePriceForOptions",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fil_MinimumLeasePaymentsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Minimum Lease Payments"
       }
      }
     },
     "localname": "MinimumLeasePaymentsMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_N2004StockIncentivePlanOfEvansSutherlandComputerCorporationMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "2004 Stock Incentive Plan Of Evans Sutherland Computer Corporation"
       }
      }
     },
     "localname": "N2004StockIncentivePlanOfEvansSutherlandComputerCorporationMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_N401kDeferredSavingsPlanMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "401K Deferred Savings Plan"
       }
      }
     },
     "localname": "N401kDeferredSavingsPlanMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_NoExpireMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "No Expire"
       }
      }
     },
     "localname": "NoExpireMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_NumeratorAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the description of Numerator, during the indicated time period.",
        "label": "Numerator"
       }
      }
     },
     "localname": "NumeratorAbstract",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fil_PensionPlanSettlementAgreementAmountPayable": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amounts payable pursuant to Pension Plan Settlement Agreement.",
        "label": "Pension Plan Settlement Agreement, Amount Payable"
       }
      }
     },
     "localname": "PensionPlanSettlementAgreementAmountPayable",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_PensionPlanSettlementAgreementPaymentSchedule": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Payment schedule of the Pension Plan Settlement Agreement.",
        "label": "Pension Plan Settlement Agreement, Payment Schedule"
       }
      }
     },
     "localname": "PensionPlanSettlementAgreementPaymentSchedule",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "fil_PensionPlanSettlementAgreementStockPayable": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Shares payable pursuant to Pension Plan Settlement Agreement.",
        "label": "Pension Plan Settlement Agreement, Stock Payable"
       }
      }
     },
     "localname": "PensionPlanSettlementAgreementStockPayable",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "fil_PensionSettlementObligation": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Pension settlement obligations including the noncurrent and current portions.",
        "label": "Pension Settlement Obligation"
       }
      }
     },
     "localname": "PensionSettlementObligation",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfSettlementOfPensionPlanLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_PensionSettlementObligationCurrent": {
     "auth_ref": [],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the monetary amount of Current portion of pension settlement obligation, as of the indicated date.",
        "label": "Current portion of pension settlement obligation"
       }
      }
     },
     "localname": "PensionSettlementObligationCurrent",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfSettlementOfPensionPlanLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_PensionSettlementObligationNetOfCurrentPortion": {
     "auth_ref": [],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the monetary amount of Pension settlement obligation, net of current portion, as of the indicated date.",
        "label": "Pension settlement obligation, net of current portion"
       }
      }
     },
     "localname": "PensionSettlementObligationNetOfCurrentPortion",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfSettlementOfPensionPlanLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_PresentValueOfFutureLeasePayments": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the monetary amount of Present value of future lease payments, as of the indicated date.",
        "label": "Present value of future lease payments"
       }
      }
     },
     "localname": "PresentValueOfFutureLeasePayments",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_PresentValueOfFutureMaintenanceExenses": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the monetary amount of Present value of future maintenance exenses, as of the indicated date.",
        "label": "Present value of future maintenance exenses"
       }
      }
     },
     "localname": "PresentValueOfFutureMaintenanceExenses",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_PrincipalPaymentsOnPensionSettlementObligation": {
     "auth_ref": [],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Principal payments on pension settlement obligation",
        "label": "Principal payments on pension settlement obligation",
        "negatedLabel": "Principal payments on pension settlement obligation"
       }
      }
     },
     "localname": "PrincipalPaymentsOnPensionSettlementObligation",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_RentExpenseMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Rent Expense"
       }
      }
     },
     "localname": "RentExpenseMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_SecondIntercreditorAgreementMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Second Intercreditor Agreement"
       }
      }
     },
     "localname": "SecondIntercreditorAgreementMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_SecondMortgageNotePayableMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Second Mortgage Note Payable"
       }
      }
     },
     "localname": "SecondMortgageNotePayableMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_SecondYearMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Second Year"
       }
      }
     },
     "localname": "SecondYearMember",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "fil_SettledErisaLiabilities": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of estimated ERISA liabilities that were settled at the settlement date.",
        "label": "Settled ERISA Liabilities"
       }
      }
     },
     "localname": "SettledErisaLiabilities",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_SettlementofthepensionplanliabilitiestextblockTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "SettlementOfThePensionPlanLiabilitiesTextBlock",
        "label": "Schedule of Settlement of Pension Plan Liabilities"
       }
      }
     },
     "localname": "SettlementofthepensionplanliabilitiestextblockTextBlock",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "fil_StateResearchCredits": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the monetary amount of State research credits, as of the indicated date.",
        "label": "State research credits"
       }
      }
     },
     "localname": "StateResearchCredits",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "fil_TotalAccumulatedCostsAndEstimatedEarningsOnUncompletedContracts": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Gross amount of accumulated costs and estimated earnings on uncompleted contracts.",
        "label": "Total accumulated costs and estimated earnings on uncompleted contracts"
       }
      }
     },
     "localname": "TotalAccumulatedCostsAndEstimatedEarningsOnUncompletedContracts",
     "nsuri": "http://www.es.com/20171231",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsAndEstimatedEarningsOnUncompletedContractsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsPayableCurrent": {
     "auth_ref": [
      "r38"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 1.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"
       }
      }
     },
     "localname": "AccountsPayableCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccountsReceivableMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Due from customers or clients for goods or services that have been delivered or sold.",
        "label": "Accounts Receivable"
       }
      }
     },
     "localname": "AccountsReceivableMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AccountsReceivableNetCurrent": {
     "auth_ref": [
      "r20",
      "r26"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount due from customers or clients, within one year of the balance sheet date (or the normal operating cycle, whichever is longer), for goods or services (including trade receivables) that have been delivered or sold in the normal course of business, reduced to the estimated net realizable fair value by an allowance established by the entity of the amount it deems uncertain of collection.",
        "label": "Accounts receivable, net"
       }
      }
     },
     "localname": "AccountsReceivableNetCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccruedLiabilitiesCurrent": {
     "auth_ref": [
      "r42"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred and payable, pertaining to costs that are statutory in nature, are incurred on contractual obligations, or accumulate over time and for which invoices have not yet been received or will not be rendered. 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).",
        "label": "Accrued liabilities"
       }
      }
     },
     "localname": "AccruedLiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment": {
     "auth_ref": [
      "r35",
      "r166"
     ],
     "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 and amortization",
        "negatedLabel": "Less accumulated depreciation and amortization"
       }
      }
     },
     "localname": "AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r63",
      "r65",
      "r66"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accumulated change in equity from transactions and other events and circumstances from non-owner sources, net of tax effect, at period end. Excludes Net Income (Loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners. Includes foreign currency translation items, certain pension adjustments, unrealized gains and losses on certain investments in debt and equity securities, other than temporary impairment (OTTI) losses related to factors other than credit losses on available-for-sale and held-to-maturity debt securities that an entity does not intend to sell and it is not more likely than not that the entity will be required to sell before recovery of the amortized cost basis, as well as changes in the fair value of derivatives related to the effective portion of a designated cash flow hedge.",
        "label": "Accumulated other comprehensive loss"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AccumulatedOtherComprehensiveIncomeMember": {
     "auth_ref": [
      "r62",
      "r66",
      "r289"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Accumulated increase (decrease) in equity from transactions and other events and circumstances from non-owner sources, attributable to the parent. Excludes net income (loss), and accumulated changes in equity from transactions resulting from investments by owners and distributions to owners.",
        "label": "AOCI Attributable to Parent"
       }
      }
     },
     "localname": "AccumulatedOtherComprehensiveIncomeMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdditionalPaidInCapital": {
     "auth_ref": [
      "r21"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "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. Includes adjustments to additional paid in capital. Some examples of such adjustments include recording the issuance of debt with a beneficial conversion feature and certain tax consequences of equity instruments awarded to employees. Use this element for the aggregate amount of additional paid-in capital associated with common and preferred stock. For additional paid-in capital associated with only common stock, use the element additional paid in capital, common stock. For additional paid-in capital associated with only preferred stock, use the element additional paid in capital, preferred stock.",
        "label": "Additional paid-in-capital"
       }
      }
     },
     "localname": "AdditionalPaidInCapital",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdditionalPaidInCapitalMember": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "AdditionalPaidInCapitalMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue": {
     "auth_ref": [
      "r227",
      "r228",
      "r254",
      "r255"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase to additional paid-in capital (APIC) from recognition of equity-based compensation.",
        "label": "Stock-based compensation"
       }
      }
     },
     "localname": "AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Adjustments to reconcile net income to net cash provided by (used in) operating activities:"
       }
      }
     },
     "localname": "AdjustmentsToReconcileNetIncomeLossToCashProvidedByUsedInOperatingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AllocatedShareBasedCompensationExpense": {
     "auth_ref": [
      "r228",
      "r248",
      "r253"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Represents the expense recognized during the period arising from equity-based compensation arrangements (for example, shares of stock, unit, stock options or other equity instruments) with employees, directors and certain consultants qualifying for treatment as employees.",
        "label": "Allocated Share-based Compensation Expense"
       }
      }
     },
     "localname": "AllocatedShareBasedCompensationExpense",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivable": {
     "auth_ref": [
      "r51",
      "r137"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "For an unclassified balance sheet, a valuation allowance for receivables due a company that are expected to be uncollectible.",
        "label": "Allowance for Doubtful Accounts Receivable, Beginning Balance",
        "periodEndLabel": "Allowance for Doubtful Accounts Receivable, Ending Balance",
        "periodStartLabel": "Allowance for Doubtful Accounts Receivable, Beginning Balance"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTradeAccountsReceivableScheduleOfDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in the allowance for doubtful accounts.",
        "label": "Increase (reduction) in estimated losses on accounts receivable"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivablePeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTradeAccountsReceivableScheduleOfDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AllowanceForDoubtfulAccountsReceivableWriteOffs": {
     "auth_ref": [
      "r51",
      "r137",
      "r348"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of direct write-downs of accounts receivable charged against the allowance.",
        "label": "Write-off of accounts receivable",
        "negatedLabel": "Write-off of accounts receivable"
       }
      }
     },
     "localname": "AllowanceForDoubtfulAccountsReceivableWriteOffs",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTradeAccountsReceivableScheduleOfDoubtfulAccountsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AmortizationOfIntangibleAssets": {
     "auth_ref": [
      "r91",
      "r156",
      "r159"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesIntangibleAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Assets": {
     "auth_ref": [
      "r324",
      "r337"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_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": "Total assets",
        "totalLabel": "Total assets"
       }
      }
     },
     "localname": "Assets",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "ASSETS"
       }
      }
     },
     "localname": "AssetsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_AssetsCurrent": {
     "auth_ref": [
      "r4",
      "r5",
      "r58"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 1.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": "Total current assets",
        "totalLabel": "Total current assets"
       }
      }
     },
     "localname": "AssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_AssetsCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Current assets:"
       }
      }
     },
     "localname": "AssetsCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_BasisOfAccountingPolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for basis of accounting, or basis of presentation, used to prepare the financial statements (for example, US Generally Accepted Accounting Principles, Other Comprehensive Basis of Accounting, IFRS).",
        "label": "Basis of Presentation"
       }
      }
     },
     "localname": "BasisOfAccountingPolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_BillingsInExcessOfCostCurrent": {
     "auth_ref": [
      "r192",
      "r193",
      "r194"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 3.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Liability attributable to (i) billings in excess of costs under the percentage of completion contract accounting method representing the difference between contractually invoiced amounts (billings) and revenue recognized based, for example, on costs incurred to estimated total costs at period end or (ii) contractually invoiced amounts (billings) in excess of costs incurred and accumulated under the completed contract accounting method that are expected to be realized within one year or one operating cycle, whichever is longer, from the reporting date.",
        "label": "Billings in excess of costs and estimated earnings on uncompleted contracts",
        "negatedLabel": "Billings in excess of costs and estimated earnings on uncompleted contracts"
       }
      }
     },
     "localname": "BillingsInExcessOfCostCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsAndEstimatedEarningsOnUncompletedContractsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_BuildingAndBuildingImprovementsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Facility held for productive use including, but not limited to, office, production, storage and distribution facilities and any addition, improvement, or renovation to the structure, for example, but not limited to, interior masonry, interior flooring, electrical, and plumbing.",
        "label": "Building and Building Improvements"
       }
      }
     },
     "localname": "BuildingAndBuildingImprovementsMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_Cash": {
     "auth_ref": [
      "r32"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "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. Excludes cash and cash equivalents within disposal group and discontinued operation.",
        "label": "Cash and cash equivalents"
       }
      }
     },
     "localname": "Cash",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRestrictedCashScheduleOfRestrictedCashDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r2",
      "r32",
      "r93"
     ],
     "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, cash equivalents, and restricted cash as of beginning of the year",
        "periodEndLabel": "Cash, cash equivalents, and restricted cash as of end of the year",
        "periodStartLabel": "Cash, cash equivalents, and restricted cash as of beginning of the year",
        "verboseLabel": "Total cash, cash equivalents, and restricted cash shown in the statements of cash flows"
       }
      }
     },
     "localname": "CashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRestrictedCashScheduleOfRestrictedCashDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease": {
     "auth_ref": [
      "r85",
      "r300"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in cash and cash equivalents. Cash and cash equivalents are the 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. Includes effect from exchange rate changes.",
        "label": "Net increase (decrease) in cash, cash equivalents, and restricted cash",
        "totalLabel": "Net increase (decrease) in cash, cash equivalents, and restricted cash"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CashAndCashEquivalentsPolicyTextBlock": {
     "auth_ref": [
      "r7",
      "r94",
      "r98",
      "r131"
     ],
     "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"
       }
      }
     },
     "localname": "CashAndCashEquivalentsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy": {
     "auth_ref": [
      "r7",
      "r94",
      "r98",
      "r131",
      "r323"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Entity's cash and cash equivalents accounting policy with respect to restricted balances.  Restrictions may include legally restricted deposits held as compensating balances against short-term borrowing arrangements, contracts entered into with others, or company statements of intention with regard to particular deposits; however, time deposits and short-term certificates of deposit are not generally included in legally restricted deposits.",
        "label": "Restricted Cash {1}",
        "terseLabel": "Restricted Cash"
       }
      }
     },
     "localname": "CashAndCashEquivalentsRestrictedCashAndCashEquivalentsPolicy",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CashUninsuredAmount": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount of cash as of the balance sheet date that is not insured by the Federal Deposit Insurance Corporation.",
        "label": "Cash, Uninsured Amount"
       }
      }
     },
     "localname": "CashUninsuredAmount",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesCashAndCashEquivalentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ChangeInAccountingEstimateByTypeAxis": {
     "auth_ref": [
      "r108",
      "r109",
      "r118",
      "r119"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of change in accounting estimate.",
        "label": "Change in Accounting Estimate by Type [Axis]"
       }
      }
     },
     "localname": "ChangeInAccountingEstimateByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ChangeInAccountingEstimateTypeDomain": {
     "auth_ref": [
      "r108",
      "r109",
      "r118",
      "r120"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Identification of the accounting estimate that was changed that had the effect of adjusting the carrying amount of an existing asset or liability, or that will alter the subsequent accounting for existing or future assets or liabilities.",
        "label": "Change in Accounting Estimate, Type"
       }
      }
     },
     "localname": "ChangeInAccountingEstimateTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ClassOfStockDomain": {
     "auth_ref": [],
     "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.",
        "label": "Class of Stock"
       }
      }
     },
     "localname": "ClassOfStockDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Commitments and contingencies (Notes 5, 6, 7 and 9)"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CommitmentsAndContingenciesDisclosureTextBlock": {
     "auth_ref": [
      "r169",
      "r170"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for commitments and contingencies.",
        "label": "Note 9 - Commitments and Contingencies"
       }
      }
     },
     "localname": "CommitmentsAndContingenciesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote9CommitmentsAndContingencies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CommonStockMember": {
     "auth_ref": [],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CommonStockParOrStatedValuePerShare": {
     "auth_ref": [
      "r16"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Face amount or stated value per share of common stock.",
        "label": "Common Stock, Par or Stated Value Per Share"
       }
      }
     },
     "localname": "CommonStockParOrStatedValuePerShare",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_CommonStockSharesAuthorized": {
     "auth_ref": [
      "r16"
     ],
     "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"
       }
      }
     },
     "localname": "CommonStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockSharesIssued": {
     "auth_ref": [
      "r16"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_CommonStockValue": {
     "auth_ref": [
      "r16"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 2.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, $0.20 par value: 30,000,000 shares authorized; 11,616,866 shares issued"
       }
      }
     },
     "localname": "CommonStockValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ComprehensiveIncomeNetOfTaxAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Comprehensive income, net of tax:"
       }
      }
     },
     "localname": "ComprehensiveIncomeNetOfTaxAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ComprehensiveIncomePolicyPolicyTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for comprehensive income.",
        "label": "Other Comprehensive Income"
       }
      }
     },
     "localname": "ComprehensiveIncomePolicyPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskBenchmarkDomain": {
     "auth_ref": [
      "r121",
      "r122",
      "r298",
      "r299"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The denominator in a calculation of a disclosed concentration risk percentage.",
        "label": "Concentration Risk Benchmark"
       }
      }
     },
     "localname": "ConcentrationRiskBenchmarkDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ConcentrationRiskByBenchmarkAxis": {
     "auth_ref": [
      "r121",
      "r122",
      "r298",
      "r299"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by benchmark of concentration risk.",
        "label": "Concentration Risk Benchmark [Axis]"
       }
      }
     },
     "localname": "ConcentrationRiskByBenchmarkAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_ConcentrationRiskDisclosureTextBlock": {
     "auth_ref": [
      "r126"
     ],
     "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": "Note 13 - Significant Customers"
       }
      }
     },
     "localname": "ConcentrationRiskDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomers"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ConcentrationRiskPercentage1": {
     "auth_ref": [
      "r121",
      "r122",
      "r298",
      "r299"
     ],
     "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"
       }
      }
     },
     "localname": "ConcentrationRiskPercentage1",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ContractsAccountedForUnderPercentageOfCompletionMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Modifications to or changes in assumptions surrounding contracts accounted for under the percentage of completion method of accounting. Percentage of completion is a method of accounting whereby profit on a long-term (construction) contracts is recognized based on reliable estimates as to the degree of completion generally based on contractual relationships (costs incurred to total costs anticipated).",
        "label": "Contracts Accounted for under Percentage of Completion"
       }
      }
     },
     "localname": "ContractsAccountedForUnderPercentageOfCompletionMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_CostOfGoodsAndServicesSold": {
     "auth_ref": [
      "r77"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The aggregate costs related to goods produced and sold and services rendered by an entity during the reporting period. This excludes costs incurred during the reporting period related to financial services rendered and other revenue generating activities.",
        "label": "Cost of sales",
        "negatedLabel": "Cost of sales"
       }
      }
     },
     "localname": "CostOfGoodsAndServicesSold",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure for billings on uncompleted contracts in excess of costs and costs of uncompleted contracts in excess of billings.",
        "label": "Schedule of Costs and Estimated Earnings on Uncompleted Contracts"
       }
      }
     },
     "localname": "CostsInExcessOfBillingsAndBillingsInExcessOfCostsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrPrograms": {
     "auth_ref": [
      "r17",
      "r18",
      "r19",
      "r193",
      "r194",
      "r321"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings.",
        "label": "Costs in Excess of Billings"
       }
      }
     },
     "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrPrograms",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContractsScheduleOfCostsAndEstimatedEarningsOnUncompletedContractsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear": {
     "auth_ref": [
      "r49",
      "r193",
      "r194"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of receivable reflecting the cost incurred on uncompleted contracts in excess of related billings which is expected to be collected within one year or the normal operating cycle, if longer.",
        "label": "Costs and estimated earnings in excess of billings on uncompleted contracts"
       }
      }
     },
     "localname": "CostsInExcessOfBillingsOnUncompletedContractsOrProgramsExpectedToBeCollectedWithinOneYear",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentFederalTaxExpenseBenefit": {
     "auth_ref": [
      "r101",
      "r276",
      "r281"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of current federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "U.S. federal"
       }
      }
     },
     "localname": "CurrentFederalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r101",
      "r276",
      "r281"
     ],
     "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)",
        "terseLabel": "Income tax provision (benefit)",
        "verboseLabel": "Total income tax expense (benefit)"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Current"
       }
      }
     },
     "localname": "CurrentIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_CurrentStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [
      "r101",
      "r276",
      "r281"
     ],
     "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",
        "negatedLabel": "State"
       }
      }
     },
     "localname": "CurrentStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_CustomerDepositsCurrent": {
     "auth_ref": [
      "r42"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 4.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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtDisclosureTextBlock": {
     "auth_ref": [
      "r180"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for information about short-term and long-term debt arrangements, which includes amounts of borrowings under each line of credit, note payable, commercial paper issue, bonds indenture, debenture issue, own-share lending arrangements and any other contractual agreement to repay funds, and about the underlying arrangements, rationale for a classification as long-term, including repayment terms, interest rates, collateral provided, restrictions on use of assets and activities, whether or not in compliance with debt covenants, and other matters important to users of the financial statements, such as the effects of refinancing and noncompliance with debt covenants.",
        "label": "Note 7 -Debt"
       }
      }
     },
     "localname": "DebtDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7Debt"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DebtInstrumentAxis": {
     "auth_ref": [
      "r10",
      "r11",
      "r12",
      "r325",
      "r327",
      "r336"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of debt instrument, including, but not limited to, draws against credit facilities.",
        "label": "Debt Instrument [Axis]"
       }
      }
     },
     "localname": "DebtInstrumentAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentFaceAmount": {
     "auth_ref": [
      "r302",
      "r304"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Face (par) amount of debt instrument at time of issuance.",
        "label": "Debt Instrument, Face Amount"
       }
      }
     },
     "localname": "DebtInstrumentFaceAmount",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DebtInstrumentInterestRateBasisForEffectiveRate": {
     "auth_ref": [
      "r44",
      "r302"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Description of any adjustments made to the stated rate to determine the effective rate.",
        "label": "Debt Instrument, Interest Rate, Basis for Effective Rate"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateBasisForEffectiveRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentInterestRateEffectivePercentage": {
     "auth_ref": [
      "r44",
      "r302"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Effective interest rate for the funds borrowed under the debt agreement considering interest compounding and original issue discount or premium.",
        "label": "Debt Instrument, Interest Rate, Effective Percentage"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateEffectivePercentage",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DebtInstrumentInterestRateTerms": {
     "auth_ref": [
      "r44"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Description of the interest rate as being fixed or variable, and, if variable, identification of the index or rate on which the interest rate is based and the number of points or percentage added to that index or rate to set the rate, and other pertinent information, such as frequency of rate resets.",
        "label": "Debt Instrument, Interest Rate Terms"
       }
      }
     },
     "localname": "DebtInstrumentInterestRateTerms",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DebtInstrumentNameDomain": {
     "auth_ref": [
      "r45"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The name for the particular debt instrument or borrowing that distinguishes it from other debt instruments or borrowings, including draws against credit facilities.",
        "label": "Debt Instrument, Name"
       }
      }
     },
     "localname": "DebtInstrumentNameDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_DebtInstrumentPeriodicPayment": {
     "auth_ref": [
      "r45",
      "r335"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of the required periodic payments including both interest and principal payments.",
        "label": "Debt Instrument, Periodic Payment"
       }
      }
     },
     "localname": "DebtInstrumentPeriodicPayment",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFederalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r101",
      "r278",
      "r281"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred federal income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "U.S. federal {1}",
        "terseLabel": "U.S. federal"
       }
      }
     },
     "localname": "DeferredFederalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredFederalStateAndLocalTaxExpenseBenefit": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred state, local, and federal tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Deferred Federal, State and Local, Tax Expense (Benefit)"
       }
      }
     },
     "localname": "DeferredFederalStateAndLocalTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r91",
      "r101",
      "r278",
      "r281"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred income tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "Total deferred expense (benefit)"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Deferred"
       }
      }
     },
     "localname": "DeferredIncomeTaxExpenseBenefitContinuingOperationsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DeferredRentCreditNoncurrent": {
     "auth_ref": [
      "r46",
      "r308"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "For a classified balance sheet, the cumulative difference between the rental income or payments required by a lease agreement and the rental income or expense recognized on a straight-line basis, or other systematic and rational basis more representative of the time pattern in which use or benefit is granted or derived from the leased property, expected to be recognized in income or expense, by the lessor or lessee, respectively, more than one year after the balance sheet date.",
        "label": "Deferred rent obligation"
       }
      }
     },
     "localname": "DeferredRentCreditNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredRevenue": {
     "auth_ref": [
      "r188",
      "r189"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred revenue as of balance sheet date. Deferred revenue represents collections of cash or other assets related to a revenue producing activity for which revenue has not yet been recognized. Generally, an entity records deferred revenue when it receives consideration from a customer before achieving certain criteria that must be met for revenue to be recognized in conformity with GAAP.",
        "label": "Deferred Revenue"
       }
      }
     },
     "localname": "DeferredRevenue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredStateAndLocalIncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r101",
      "r278",
      "r281"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred state and local tax expense (benefit) pertaining to income (loss) from continuing operations.",
        "label": "State {1}",
        "terseLabel": "State"
       }
      }
     },
     "localname": "DeferredStateAndLocalIncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsGross": {
     "auth_ref": [
      "r269"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences and carryforwards.",
        "label": "Total deferred income tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsGross",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsInventory": {
     "auth_ref": [
      "r259",
      "r274",
      "r275"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from inventory.",
        "label": "Inventory reserves and other inventory-related temporary basis differences"
       }
      }
     },
     "localname": "DeferredTaxAssetsInventory",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsNet": {
     "auth_ref": [
      "r270"
     ],
     "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": "Net deferred income tax assets"
       }
      }
     },
     "localname": "DeferredTaxAssetsNet",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOperatingLossCarryforwards": {
     "auth_ref": [
      "r258",
      "r274",
      "r275"
     ],
     "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 loss carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsOperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsOther": {
     "auth_ref": [
      "r259",
      "r274",
      "r275"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences, classified as other.",
        "label": "Other {2}",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "DeferredTaxAssetsOther",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsPropertyPlantAndEquipment": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from property, plant, and equipment.",
        "label": "Property and equipment, principally due to differences in depreciation"
       }
      }
     },
     "localname": "DeferredTaxAssetsPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxCreditCarryforwards": {
     "auth_ref": [
      "r273",
      "r274",
      "r275"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, before allocation of a valuation allowances, of deferred tax assets attributable to deductible tax credit carryforwards including, but not limited to, research, foreign, general business, alternative minimum tax, and other deductible tax credit carryforwards.",
        "label": "Credit carryforwards"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxCreditCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits": {
     "auth_ref": [
      "r274"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before allocation of valuation allowances of deferred tax asset attributable to deductible temporary differences from postretirement benefits.",
        "label": "Retirement liabilities"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsPostretirementBenefits",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther": {
     "auth_ref": [
      "r258",
      "r274",
      "r275"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, before allocation of valuation allowance, of deferred tax asset attributable to deductible temporary differences from reserves and accruals, classified as other.",
        "label": "Warranty, vacation, deferred rent and other liabilities"
       }
      }
     },
     "localname": "DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsOther",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r271"
     ],
     "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": "Less valuation allowance",
        "negatedLabel": "Less valuation allowance"
       }
      }
     },
     "localname": "DeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DeferredTaxLiabilitiesPropertyPlantAndEquipment": {
     "auth_ref": [
      "r259",
      "r274",
      "r275"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of deferred tax liability attributable to taxable temporary differences from property, plant, and equipment.",
        "label": "Property and equipment, principally due to differences in depreciation {1}",
        "terseLabel": "Property and equipment, principally due to differences in depreciation"
       }
      }
     },
     "localname": "DeferredTaxLiabilitiesPropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfDeferredIncomeTaxAssetsAndLiabilitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanActuarialGainLoss": {
     "auth_ref": [
      "r204"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of gain (loss) from change in actuarial assumptions which (increases) decreases benefit obligation of defined benefit plan. Assumptions include, but are not limited to, interest, mortality, employee turnover, salary, and temporary deviation from substantive plan.",
        "label": "Actuarial loss (gain)"
       }
      }
     },
     "localname": "DefinedBenefitPlanActuarialGainLoss",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfCostsOfRetirementPlansChangesInBenefitObligationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanAmortizationOfGainsLosses": {
     "auth_ref": [
      "r216"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of gain (loss) recognized in net periodic benefit (cost) credit of defined benefit plan.",
        "label": "Amortization of actuarial loss"
       }
      }
     },
     "localname": "DefinedBenefitPlanAmortizationOfGainsLosses",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfNetPeriodicBenefitCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanAmountsRecognizedInBalanceSheet": {
     "auth_ref": [
      "r200",
      "r208"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of asset (liability), recognized in statement of financial position, for defined benefit pension and other postretirement plans.",
        "label": "Net amount recognized"
       }
      }
     },
     "localname": "DefinedBenefitPlanAmountsRecognizedInBalanceSheet",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInBalanceSheetDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanAmountsRecognizedInOtherComprehensiveIncomeLossNetGainLossBeforeTax": {
     "auth_ref": [
      "r60",
      "r63",
      "r217"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, before tax, after reclassification adjustment, of increase (decrease) in accumulated other comprehensive income from gain (loss) of defined benefit plan.",
        "label": "Unrecognized net actuarial loss"
       }
      }
     },
     "localname": "DefinedBenefitPlanAmountsRecognizedInOtherComprehensiveIncomeLossNetGainLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate": {
     "auth_ref": [
      "r219"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average rate for present value of future retirement benefits cash flows, used to determine benefit obligation of defined benefit plan.",
        "label": "Assumptions Used Calculating Benefit Obligation, Discount Rate"
       }
      }
     },
     "localname": "DefinedBenefitPlanAssumptionsUsedCalculatingBenefitObligationDiscountRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate": {
     "auth_ref": [
      "r219"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average rate for present value of future retirement benefits cash flows, used to determine net periodic benefit cost of defined benefit plan.",
        "label": "Assumptions Used Calculating Net Periodic Benefit Cost, Discount Rate"
       }
      }
     },
     "localname": "DefinedBenefitPlanAssumptionsUsedCalculatingNetPeriodicBenefitCostDiscountRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_DefinedBenefitPlanBenefitObligation": {
     "auth_ref": [
      "r202"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of actuarial present value of benefits attributed to service rendered by employee for defined benefit plan.",
        "label": "Projected benefit obligation as of beginning of the year",
        "periodEndLabel": "Projected benefit obligation as of beginning of the year",
        "periodStartLabel": "Projected benefit obligation as of beginning of the year"
       }
      }
     },
     "localname": "DefinedBenefitPlanBenefitObligation",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfCostsOfRetirementPlansChangesInBenefitObligationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanBenefitObligationBenefitsPaid": {
     "auth_ref": [
      "r205",
      "r224"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of payment to participant of defined benefit plan which decreases benefit obligation. For pension plan, payment includes, but is not limited to, pension benefits and death benefits. For other postretirement plan, payment includes, but is not limited to, prescription drug benefits, health care benefits, life insurance benefits, and legal, educational and advisory services.",
        "label": "Benefits paid",
        "negatedLabel": "Benefits paid"
       }
      }
     },
     "localname": "DefinedBenefitPlanBenefitObligationBenefitsPaid",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfCostsOfRetirementPlansChangesInBenefitObligationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanByPlanAssetCategoriesAxis": {
     "auth_ref": [
      "r212",
      "r222"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by category of defined benefit plan assets.",
        "label": "Defined Benefit Plan, Asset Categories [Axis]"
       }
      }
     },
     "localname": "DefinedBenefitPlanByPlanAssetCategoriesAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_DefinedBenefitPlanContributionsByEmployer": {
     "auth_ref": [
      "r207",
      "r209",
      "r210",
      "r223"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of contribution received by defined benefit plan from employer which increases plan assets.",
        "label": "Contributions"
       }
      }
     },
     "localname": "DefinedBenefitPlanContributionsByEmployer",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfCostsOfRetirementPlansChangesInBenefitObligationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanExpectedFutureBenefitPaymentsFiveFiscalYearsThereafter": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of benefits for defined benefit plan expected to be paid in five fiscal years after fifth fiscal year following latest fiscal year.",
        "label": "2022-2026"
       }
      }
     },
     "localname": "DefinedBenefitPlanExpectedFutureBenefitPaymentsFiveFiscalYearsThereafter",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanExpectedFutureBenefitPaymentsNextTwelveMonths": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of benefits for defined benefit plan expected to be paid in next fiscal year following latest fiscal year.",
        "label": "2017 {1}",
        "terseLabel": "2017"
       }
      }
     },
     "localname": "DefinedBenefitPlanExpectedFutureBenefitPaymentsNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanExpectedFutureBenefitPaymentsYearFive": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of benefits for defined benefit plan expected to be paid in fifth fiscal year following latest fiscal year.",
        "label": "2021"
       }
      }
     },
     "localname": "DefinedBenefitPlanExpectedFutureBenefitPaymentsYearFive",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanExpectedFutureBenefitPaymentsYearFour": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of benefits for defined benefit plan expected to be paid in fourth fiscal year following latest fiscal year.",
        "label": "2020"
       }
      }
     },
     "localname": "DefinedBenefitPlanExpectedFutureBenefitPaymentsYearFour",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanExpectedFutureBenefitPaymentsYearThree": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of benefits for defined benefit plan expected to be paid in third fiscal year following latest fiscal year.",
        "label": "2019"
       }
      }
     },
     "localname": "DefinedBenefitPlanExpectedFutureBenefitPaymentsYearThree",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanExpectedFutureBenefitPaymentsYearTwo": {
     "auth_ref": [
      "r213"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of benefits for defined benefit plan expected to be paid in second fiscal year following latest fiscal year.",
        "label": "2018 {1}",
        "terseLabel": "2018"
       }
      }
     },
     "localname": "DefinedBenefitPlanExpectedFutureBenefitPaymentsYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanExpectedFutureEmployerContributionsCurrentFiscalYear": {
     "auth_ref": [
      "r223"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of contributions received and expected to be received by defined benefit plan from employer in current fiscal year.",
        "label": "Contribution by Employer"
       }
      }
     },
     "localname": "DefinedBenefitPlanExpectedFutureEmployerContributionsCurrentFiscalYear",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanFairValueOfPlanAssets": {
     "auth_ref": [
      "r206"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Fair value of assets that have been segregated and restricted to provide pension or postretirement benefits. Assets include, but are not limited to, stocks, bonds, other investments, earnings from investments, and contributions by the employer and employees.",
        "label": "Fair value of plan assets - end of year",
        "periodEndLabel": "Fair value of plan assets - end of year"
       }
      }
     },
     "localname": "DefinedBenefitPlanFairValueOfPlanAssets",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfCostsOfRetirementPlansChangesInBenefitObligationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanFundedStatusOfPlan": {
     "auth_ref": [
      "r200",
      "r208"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of funded (unfunded) status of defined benefit plan, measured as difference between fair value of plan assets and benefit obligation. Includes, but is not limited to, overfunded (underfunded) status.",
        "label": "Unfunded status",
        "negatedLabel": "Unfunded status"
       }
      }
     },
     "localname": "DefinedBenefitPlanFundedStatusOfPlan",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanInterestCost": {
     "auth_ref": [
      "r203",
      "r215"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cost recognized for passage of time related to defined benefit plan.",
        "label": "Interest cost"
       }
      }
     },
     "localname": "DefinedBenefitPlanInterestCost",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfCostsOfRetirementPlansChangesInBenefitObligationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfNetPeriodicBenefitCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DefinedBenefitPlanNetPeriodicBenefitCost": {
     "auth_ref": [
      "r214"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of net periodic benefit cost (credit) for defined benefit plan.",
        "label": "Net periodic benefit cost"
       }
      }
     },
     "localname": "DefinedBenefitPlanNetPeriodicBenefitCost",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfNetPeriodicBenefitCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Depreciation": {
     "auth_ref": [
      "r91",
      "r164"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DepreciationAndAmortization": {
     "auth_ref": [
      "r91",
      "r164"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock": {
     "auth_ref": [
      "r186",
      "r256"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for compensation-related costs for equity-based compensation, which may include disclosure of policies, compensation plan details, allocation of equity compensation, incentive distributions, equity-based arrangements to obtain goods and services, deferred compensation arrangements, employee stock ownership plan details and employee stock purchase plan details.",
        "label": "Note 10 - Stock Option Plan"
       }
      }
     },
     "localname": "DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlan"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_DisclosureTextBlockAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Notes"
       }
      }
     },
     "localname": "DisclosureTextBlockAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_EarningsPerShareBasic": {
     "auth_ref": [
      "r71",
      "r112",
      "r115",
      "r117",
      "r333",
      "r346"
     ],
     "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": "Net income per common share - basic"
       }
      }
     },
     "localname": "EarningsPerShareBasic",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerShareDiluted": {
     "auth_ref": [
      "r71",
      "r112",
      "r333",
      "r346"
     ],
     "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": "Net income per common share - diluted"
       }
      }
     },
     "localname": "EarningsPerShareDiluted",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_EarningsPerSharePolicyTextBlock": {
     "auth_ref": [
      "r98",
      "r114",
      "r115",
      "r116"
     ],
     "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 Per Common Share"
       }
      }
     },
     "localname": "EarningsPerSharePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r264",
      "r265",
      "r280"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Percentage of domestic federal statutory tax rate applicable to pretax income (loss).",
        "label": "Effective Income Tax Rate Reconciliation, at Federal Statutory Income Tax Rate, Percent"
       }
      }
     },
     "localname": "EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1": {
     "auth_ref": [
      "r249"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average period over which unrecognized compensation is expected to be recognized for equity-based compensation plans, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Total unrecognized share-based compensation, compensation cost not yet recognized, weighted-average period"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions": {
     "auth_ref": [
      "r249"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Unrecognized cost of unvested options awarded to employees as compensation.",
        "label": "Total unrecognized share-based compensation cost"
       }
      }
     },
     "localname": "EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_EquityComponentDomain": {
     "auth_ref": [
      "r181"
     ],
     "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.",
        "label": "Equity Component"
       }
      }
     },
     "localname": "EquityComponentDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain": {
     "auth_ref": [
      "r296",
      "r297"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Class of asset.",
        "label": "Asset Class"
       }
      }
     },
     "localname": "FairValueAssetsMeasuredOnRecurringBasisUnobservableInputReconciliationByAssetClassDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_FairValueByAssetClassAxis": {
     "auth_ref": [
      "r294",
      "r297"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by class of asset.",
        "label": "Asset Class [Axis]"
       }
      }
     },
     "localname": "FairValueByAssetClassAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_FairValueInputsDiscountRate": {
     "auth_ref": [
      "r295"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Interest rate used to find the present value of an amount to be paid or received in the future as an input to measure fair value.  For example, but not limited to, weighted average cost of capital (WACC), cost of capital, cost of equity and cost of debt.",
        "label": "Fair Value Inputs, Discount Rate"
       }
      }
     },
     "localname": "FairValueInputsDiscountRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_FinanceLoansAndLeasesReceivablePolicy": {
     "auth_ref": [
      "r98",
      "r133",
      "r134",
      "r138",
      "r139",
      "r141",
      "r329"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for finance, loan and lease receivables, including those held for investment and those held for sale. This disclosure may include (1) the basis at which such receivables are carried in the entity's statements of financial position (2) how the level of the allowance for loan and lease losses is determined (3) when impairments, charge-offs or recoveries are recognized for such receivables (4) the treatment of origination fees and costs, including the amortization method for net deferred fees or costs (5) the treatment of any premiums or discounts or unearned income (6) the entity's income recognition (revenues, expenses and gains and losses arising from committing to issue, issuing, granting, collecting, terminating, modifying and holding loans) policies for such receivables, including those that are impaired, past due or placed on nonaccrual status and (7) the treatment of foreclosures or repossessions.",
        "label": "Note 4 - Lease Receivable"
       }
      }
     },
     "localname": "FinanceLoansAndLeasesReceivablePolicy",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivable"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GainLossOnDispositionOfAssets1": {
     "auth_ref": [
      "r163"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of gain (loss) on sale or disposal of assets, including but not limited to property plant and equipment, intangible assets and equity in securities of subsidiaries or equity method investee.",
        "label": "Gain on Leased Assets"
       }
      }
     },
     "localname": "GainLossOnDispositionOfAssets1",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Goodwill": {
     "auth_ref": [
      "r151",
      "r152",
      "r153"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after accumulated impairment loss of an asset representing future economic benefits arising from other assets acquired in a business combination that are not individually identified and separately recognized.",
        "label": "Goodwill"
       }
      }
     },
     "localname": "Goodwill",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote2GoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_GoodwillAndIntangibleAssetsPolicyTextBlock": {
     "auth_ref": [
      "r98",
      "r154",
      "r157"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for goodwill and intangible assets. This accounting policy also may address how an entity assesses and measures impairment of goodwill and intangible assets.",
        "label": "Goodwill {1}",
        "terseLabel": "Goodwill"
       }
      }
     },
     "localname": "GoodwillAndIntangibleAssetsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GoodwillDisclosureTextBlock": {
     "auth_ref": [
      "r155"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for goodwill.",
        "label": "Note 2 - Goodwill"
       }
      }
     },
     "localname": "GoodwillDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote2Goodwill"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_GrossProfit": {
     "auth_ref": [
      "r76"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock": {
     "auth_ref": [
      "r98",
      "r162",
      "r168"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for recognizing and measuring the impairment of long-lived assets. An entity also may disclose its accounting policy for long-lived assets to be sold. This policy excludes goodwill and intangible assets.",
        "label": "Impairment of Long-Lived Assets"
       }
      }
     },
     "localname": "ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic": {
     "auth_ref": [
      "r102"
     ],
     "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": "United States"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfWorldwideIncomeBeforeIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign": {
     "auth_ref": [
      "r102"
     ],
     "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": "International"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfWorldwideIncomeBeforeIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments": {
     "auth_ref": [
      "r102"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_ProfitLoss",
       "weight": 1.0
      }
     },
     "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 before income tax benefit (provision)",
        "totalLabel": "Income before income tax benefit (provision)"
       }
      }
     },
     "localname": "IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxAuthorityAxis": {
     "auth_ref": [
      "r266"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by tax jurisdiction.",
        "label": "Income Tax Authority [Axis]"
       }
      }
     },
     "localname": "IncomeTaxAuthorityAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "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.",
        "label": "Income Tax Authority"
       }
      }
     },
     "localname": "IncomeTaxAuthorityDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_IncomeTaxDisclosureTextBlock": {
     "auth_ref": [
      "r283"
     ],
     "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": "Note 8 - Income Taxes"
       }
      }
     },
     "localname": "IncomeTaxDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxes"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxExpenseBenefit": {
     "auth_ref": [
      "r103",
      "r277"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.0,
       "parentTag": "us-gaap_ProfitLoss",
       "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": "Income tax benefit (provision)",
        "negatedLabel": "Income tax benefit (provision)"
       }
      }
     },
     "localname": "IncomeTaxExpenseBenefit",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxPolicyTextBlock": {
     "auth_ref": [
      "r98",
      "r262",
      "r263",
      "r267",
      "r268",
      "r282",
      "r349"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_IncomeTaxRateReconciliationDeductionsEmployeeStockOwnershipPlanDividends": {
     "auth_ref": [
      "r264",
      "r265"
     ],
     "crdr": "credit",
     "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 deduction for dividend paid to employee stock ownership plan.",
        "label": "Stock compensation"
       }
      }
     },
     "localname": "IncomeTaxRateReconciliationDeductionsEmployeeStockOwnershipPlanDividends",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance": {
     "auth_ref": [
      "r261",
      "r264",
      "r265"
     ],
     "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 attributable to operations"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInDeferredTaxAssetsValuationAllowance",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationChangeInEnactedTaxRate": {
     "auth_ref": [
      "r260",
      "r264",
      "r265"
     ],
     "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 income tax rates.",
        "label": "Change in effective tax rate"
       }
      }
     },
     "localname": "IncomeTaxReconciliationChangeInEnactedTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationDeductions": {
     "auth_ref": [
      "r264",
      "r265"
     ],
     "crdr": "credit",
     "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 deductions. Including, but not limited to, extraterritorial income exclusion deduction, qualified production activity deduction, dividend deduction, deduction for dividend paid to employee stock ownership plan, Medicare prescription drug benefit subsidy deduction, and other deductions.",
        "label": "True-up adjustments and expiration of tax carryforwards and credits"
       }
      }
     },
     "localname": "IncomeTaxReconciliationDeductions",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate": {
     "auth_ref": [
      "r100",
      "r264",
      "r265"
     ],
     "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 benefit at U.S. federal statutory rate"
       }
      }
     },
     "localname": "IncomeTaxReconciliationIncomeTaxExpenseBenefitAtFederalStatutoryIncomeTaxRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationOtherReconcilingItems": {
     "auth_ref": [
      "r264",
      "r265"
     ],
     "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, net"
       }
      }
     },
     "localname": "IncomeTaxReconciliationOtherReconcilingItems",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationStateAndLocalIncomeTaxes": {
     "auth_ref": [
      "r100",
      "r264",
      "r265"
     ],
     "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 state and local income tax expense (benefit).",
        "label": "State tax benefit (provision) (net of federal income tax benefit)"
       }
      }
     },
     "localname": "IncomeTaxReconciliationStateAndLocalIncomeTaxes",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxReconciliationTaxSettlements": {
     "auth_ref": [
      "r264",
      "r265"
     ],
     "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 income tax settlements. Including, but not limited to, domestic tax settlement, foreign tax settlement, state and local tax settlement, and other tax settlements.",
        "label": "Pension settlement"
       }
      }
     },
     "localname": "IncomeTaxReconciliationTaxSettlements",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfEffectiveIncomeTaxRateReconciliationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncomeTaxesPaid": {
     "auth_ref": [
      "r87",
      "r95"
     ],
     "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.",
        "label": "Income taxes"
       }
      }
     },
     "localname": "IncomeTaxesPaid",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsPayable": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 11.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 in accounts payable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsPayable",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccountsReceivable": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 6.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": "Decrease (increase) in accounts receivable",
        "negatedLabel": "Decrease (increase) in accounts receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccountsReceivable",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInAccruedLiabilities": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 12.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": "Increase (decrease) in accrued liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInAccruedLiabilities",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 9.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in the asset reflecting the cost incurred on uncompleted contracts in excess of related billings.",
        "label": "Decrease (increase) in costs and estimated earnings in excess of billings on uncompleted contracts, net",
        "negatedLabel": "Decrease (increase) in costs and estimated earnings in excess of billings on uncompleted contracts, net"
       }
      }
     },
     "localname": "IncreaseDecreaseInCostInExcessOfBillingOnUncompletedContract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInCustomerDeposits": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 14.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"
       }
      }
     },
     "localname": "IncreaseDecreaseInCustomerDeposits",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInDeferredCompensation": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The increase (decrease) during the reporting period in the obligation created by employee agreements whereby earned compensation will be paid in the future.",
        "label": "Decrease (increase) in deferred pension costs"
       }
      }
     },
     "localname": "IncreaseDecreaseInDeferredCompensation",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInInventories": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 8.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": "Increase in inventories",
        "negatedLabel": "Increase in inventories"
       }
      }
     },
     "localname": "IncreaseDecreaseInInventories",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInLeasingReceivables": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 7.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 due from lessees arising from lease agreements.",
        "label": "Increase (Decrease) in Leasing Receivables",
        "negatedLabel": "Decrease (increase) in lease receivable"
       }
      }
     },
     "localname": "IncreaseDecreaseInLeasingReceivables",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInOperatingCapitalAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Changes in operating assets and liabilities:"
       }
      }
     },
     "localname": "IncreaseDecreaseInOperatingCapitalAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_IncreaseDecreaseInPensionAndPostretirementObligations": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 13.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in obligation for pension and other postretirement benefits. Includes, but is not limited to, defined benefit and defined contribution plans.",
        "label": "Decrease in accrued pension and retirement liabilities"
       }
      }
     },
     "localname": "IncreaseDecreaseInPensionAndPostretirementObligations",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets": {
     "auth_ref": [
      "r90"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 10.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in prepaid expenses, and assets classified as other.",
        "label": "Increase in prepaid expenses and other assets",
        "negatedLabel": "Increase in prepaid expenses and other assets"
       }
      }
     },
     "localname": "IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_IntangibleAssetsFiniteLivedPolicy": {
     "auth_ref": [
      "r98",
      "r158"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for finite-lived intangible assets. This accounting policy also might address: (1) the amortization method used; (2) the useful lives of such assets; and (3) how the entity assesses and measures impairment of such assets.",
        "label": "Intangible Assets"
       }
      }
     },
     "localname": "IntangibleAssetsFiniteLivedPolicy",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InterestExpense": {
     "auth_ref": [
      "r301",
      "r303",
      "r334"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestIncomeOther": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of interest income earned from interest bearing assets classified as other.",
        "label": "Interest Income, Other"
       }
      }
     },
     "localname": "InterestIncomeOther",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InterestPaid": {
     "auth_ref": [
      "r86",
      "r95"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash paid for interest. Includes, but is not limited to, payment to settle zero-coupon bond attributable to 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": "Interest"
       }
      }
     },
     "localname": "InterestPaid",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InternalRevenueServiceIRSMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Designated tax department of the United States of America government entitled to levy and collect income taxes from the entity.",
        "label": "Internal Revenue Service (IRS)"
       }
      }
     },
     "localname": "InternalRevenueServiceIRSMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_InventoryFinishedGoods": {
     "auth_ref": [
      "r52"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesScheduleOfInventoryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryNet": {
     "auth_ref": [
      "r3",
      "r55",
      "r146"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 6.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "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, net"
       }
      }
     },
     "localname": "InventoryNet",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesScheduleOfInventoryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryPolicyTextBlock": {
     "auth_ref": [
      "r6",
      "r56",
      "r98",
      "r147",
      "r149"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_InventoryRawMaterials": {
     "auth_ref": [
      "r54"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesScheduleOfInventoryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryValuationReserves": {
     "auth_ref": [
      "r55",
      "r105",
      "r146",
      "r150"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of valuation reserve for inventory.",
        "label": "Reserve for obsolete inventory",
        "negatedLabel": "Reserve for obsolete inventory"
       }
      }
     },
     "localname": "InventoryValuationReserves",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesScheduleOfInventoryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWorkInProcess": {
     "auth_ref": [
      "r53"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before valuation and LIFO reserves of merchandise or goods in the production process expected to be completed within one year or operating cycle, if longer.",
        "label": "Work-in-process"
       }
      }
     },
     "localname": "InventoryWorkInProcess",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesScheduleOfInventoryDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_InventoryWriteDown": {
     "auth_ref": [
      "r78",
      "r144",
      "r145",
      "r148"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 4.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of loss from reductions in inventory due to subsequent measurement adjustments, including, but not limited to, physical deterioration, obsolescence, or changes in price levels.",
        "label": "Provision for excess and obsolete inventory"
       }
      }
     },
     "localname": "InventoryWriteDown",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesInventoriesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LandMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Real estate held.",
        "label": "Land {1}",
        "terseLabel": "Land"
       }
      }
     },
     "localname": "LandMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeaseAndRentalExpense": {
     "auth_ref": [],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of rent expense incurred for leased assets, including but not limited to, furniture and equipment, that is not directly or indirectly associated with the manufacture, sale or creation of a product or product line.",
        "label": "Operating Leases, Rent Expense"
       }
      }
     },
     "localname": "LeaseAndRentalExpense",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LeaseArrangementTypeAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by group of related lease arrangements. For example, but not limited to, leases grouped by facility or contractual terms.",
        "label": "Lease Arrangement, Type [Axis]"
       }
      }
     },
     "localname": "LeaseArrangementTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LeaseArrangementTypeDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Group of related lease arrangements. For example, but not limited to, leases grouped by facility or contractual terms.",
        "label": "Lease Arrangement, Type"
       }
      }
     },
     "localname": "LeaseArrangementTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_LeasesOfLessorDisclosureTextBlock": {
     "auth_ref": [
      "r312"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for lessor entity's leasing arrangements for operating, capital and leveraged leases.",
        "label": "Schedule of Lease Receivable"
       }
      }
     },
     "localname": "LeasesOfLessorDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LettersOfCreditOutstandingAmount": {
     "auth_ref": [],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The total amount of the contingent obligation under letters of credit outstanding as of the reporting date.",
        "label": "Letters of Credit Outstanding, Amount"
       }
      }
     },
     "localname": "LettersOfCreditOutstandingAmount",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote9CommitmentsAndContingenciesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_Liabilities": {
     "auth_ref": [
      "r41"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 1.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": "Total liabilities",
        "totalLabel": "Total liabilities"
       }
      }
     },
     "localname": "Liabilities",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquity": {
     "auth_ref": [
      "r25",
      "r328",
      "r342"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_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": "Total liabilities and stockholders' equity",
        "totalLabel": "Total liabilities and stockholders' equity"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesAndStockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "LIABILITIES AND STOCKHOLDERS' EQUITY"
       }
      }
     },
     "localname": "LiabilitiesAndStockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LiabilitiesCurrent": {
     "auth_ref": [
      "r43"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 1.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": "Total current liabilities",
        "totalLabel": "Total current liabilities"
       }
      }
     },
     "localname": "LiabilitiesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LiabilitiesCurrentAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Current liabilities:"
       }
      }
     },
     "localname": "LiabilitiesCurrentAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LineOfCreditFacilityMaximumBorrowingCapacity": {
     "auth_ref": [
      "r39"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Maximum borrowing capacity under the credit facility without consideration of any current restrictions on the amount that could be borrowed or the amounts currently outstanding under the facility.",
        "label": "Line of Credit Facility, Maximum Borrowing Capacity"
       }
      }
     },
     "localname": "LineOfCreditFacilityMaximumBorrowingCapacity",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LoansNotesTradeAndOtherReceivablesDisclosureTextBlock": {
     "auth_ref": [
      "r20",
      "r26",
      "r132",
      "r136",
      "r137",
      "r329",
      "r343",
      "r347"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for claims held for amounts due a entity, excluding financing receivables. Examples include, but are not limited to, trade accounts receivables, notes receivables, loans receivables. Includes disclosure for allowance for credit losses.",
        "label": "Schedule of Doubtful Accounts"
       }
      }
     },
     "localname": "LoansNotesTradeAndOtherReceivablesDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LongTermContractsOrProgramsDisclosureTextBlock": {
     "auth_ref": [
      "r59",
      "r195",
      "r322"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for long-term contracts or programs.",
        "label": "Note 3 - Costs and Estimated Earnings on Uncompleted Contracts"
       }
      }
     },
     "localname": "LongTermContractsOrProgramsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote3CostsAndEstimatedEarningsOnUncompletedContracts"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_LongTermDebt": {
     "auth_ref": [
      "r12",
      "r327",
      "r339"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Long-term Debt"
       }
      }
     },
     "localname": "LongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtCurrent": {
     "auth_ref": [
      "r40"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 7.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after unamortized (discount) premium and debt issuance costs, of long-term debt, classified as current. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Current portion of long-term debt",
        "negatedLabel": "Current portion of long-term debt"
       }
      }
     },
     "localname": "LongTermDebtCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentTerms": {
     "auth_ref": [
      "r178",
      "r182"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of timing of required repayments, sinking fund requirements, and other redeemable securities at fixed or determinable prices and dates in the five years immediately following the date of the latest balance sheet presented in the financial statements, and the amount thereafter to fully repay the principal of long-term debt. These disclosures may be made either on an individual debt or security basis, by type of debt or security basis, or on a combined basis.",
        "label": "Long-term Debt, Maturities, Repayment Terms"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentTerms",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive": {
     "auth_ref": [
      "r104",
      "r178"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing after the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "Thereafter"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalAfterYearFive",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths": {
     "auth_ref": [
      "r104",
      "r178"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2017 {2}",
        "terseLabel": "2017"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive": {
     "auth_ref": [
      "r104",
      "r178"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the fifth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2021 {1}",
        "terseLabel": "2021"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour": {
     "auth_ref": [
      "r104",
      "r178"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the fourth fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2020 {1}",
        "terseLabel": "2020"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree": {
     "auth_ref": [
      "r104",
      "r178"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the third fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2019 {1}",
        "terseLabel": "2019"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo": {
     "auth_ref": [
      "r104",
      "r178"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of long-term debt payable, sinking fund requirements, and other securities issued that are redeemable by holder at fixed or determinable prices and dates maturing in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2018 {2}",
        "terseLabel": "2018"
       }
      }
     },
     "localname": "LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfPrincipalMaturitiesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongTermDebtNoncurrent": {
     "auth_ref": [
      "r45"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after unamortized (discount) premium and debt issuance costs of long-term debt classified as noncurrent and excluding amounts to be repaid within one year or the normal operating cycle, if longer. Includes, but not limited to, notes payable, bonds payable, debentures, mortgage loans and commercial paper. Excludes capital lease obligations.",
        "label": "Long-term debt, net of current portion"
       }
      }
     },
     "localname": "LongTermDebtNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_LongtermDebtTypeAxis": {
     "auth_ref": [
      "r45"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of long-term debt.",
        "label": "Long-term Debt, Type [Axis]"
       }
      }
     },
     "localname": "LongtermDebtTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_LongtermDebtTypeDomain": {
     "auth_ref": [
      "r45",
      "r179"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Type of long-term debt arrangement, such as notes, line of credit, commercial paper, asset-based financing, project financing, letter of credit financing. These are debt arrangements that originally required repayment more than twelve months after issuance or greater than the normal operating cycle of the company, if longer.",
        "label": "Long-term Debt, Type"
       }
      }
     },
     "localname": "LongtermDebtTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MachineryAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tangible personal property used to produce goods and services, including, but is not limited to, tools, dies and molds, computer and office equipment.",
        "label": "Machinery and Equipment"
       }
      }
     },
     "localname": "MachineryAndEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MajorCustomersAxis": {
     "auth_ref": [
      "r130",
      "r196",
      "r198"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by name or description of a single external customer or a group of external customers.",
        "label": "Customer [Axis]"
       }
      }
     },
     "localname": "MajorCustomersAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_MaximumMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Upper limit of the provided range.",
        "label": "Maximum"
       }
      }
     },
     "localname": "MaximumMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_MinimumMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Lower limit of the provided range.",
        "label": "Minimum"
       }
      }
     },
     "localname": "MinimumMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NameOfMajorCustomerDomain": {
     "auth_ref": [
      "r130"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Single external customer or group of external customers.",
        "label": "Customer"
       }
      }
     },
     "localname": "NameOfMajorCustomerDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivities": {
     "auth_ref": [
      "r85",
      "r89"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 3.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease",
       "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 used in financing activities",
        "totalLabel": "Net cash used in financing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivities",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInFinancingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Cash flows from financing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInFinancingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivities": {
     "auth_ref": [
      "r85",
      "r89"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease",
       "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 used in investing activities",
        "totalLabel": "Net cash used in investing activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivities",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetCashProvidedByUsedInInvestingActivitiesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Cash flows from investing activities:"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInInvestingActivitiesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_NetCashProvidedByUsedInOperatingActivities": {
     "auth_ref": [
      "r85",
      "r88",
      "r92"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_CashAndCashEquivalentsPeriodIncreaseDecrease",
       "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 by (used in) operating activities"
       }
      }
     },
     "localname": "NetCashProvidedByUsedInOperatingActivities",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NetIncomeLoss": {
     "auth_ref": [
      "r70",
      "r92",
      "r115",
      "r332",
      "r345"
     ],
     "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"
       }
      }
     },
     "localname": "NetIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_NonoperatingIncomeExpense": {
     "auth_ref": [
      "r80"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 3.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "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": "Other income (expense), net"
       }
      }
     },
     "localname": "NonoperatingIncomeExpense",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NontradeReceivables": {
     "auth_ref": [
      "r57"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Carrying amounts due as of the balance sheet date of the sum of amounts receivable other than from customers.",
        "label": "Total"
       }
      }
     },
     "localname": "NontradeReceivables",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableScheduleOfLeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NontradeReceivablesCurrent": {
     "auth_ref": [
      "r57"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The sum of amounts currently receivable other than from customers. For classified balance sheets, represents the current amount receivable, that is amounts expected to be collected within one year or the normal operating cycle, if longer.",
        "label": "Current portion of lease receivable",
        "terseLabel": "Lease receivable"
       }
      }
     },
     "localname": "NontradeReceivablesCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableScheduleOfLeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_NontradeReceivablesNoncurrent": {
     "auth_ref": [
      "r37"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The noncurrent portion of the receivable other than from customers, that is amounts expected to be collected after one year or the normal operating cycle, if longer.",
        "label": "Long-term lease receivable, net of current portion",
        "verboseLabel": "Lease receivable long term"
       }
      }
     },
     "localname": "NontradeReceivablesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableScheduleOfLeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OfficeEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tangible personal property used in an office setting. Examples include, but are not limited to, computers, copiers and fax machine.",
        "label": "Office Equipment"
       }
      }
     },
     "localname": "OfficeEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_OperatingExpenses": {
     "auth_ref": [],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.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": "Total operating expenses",
        "negatedTotalLabel": "Total operating expenses"
       }
      }
     },
     "localname": "OperatingExpenses",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingExpensesAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Operating expenses:"
       }
      }
     },
     "localname": "OperatingExpensesAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_OperatingIncomeLoss": {
     "auth_ref": [],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_IncomeLossFromContinuingOperationsBeforeIncomeTaxesMinorityInterestAndIncomeLossFromEquityMethodInvestments",
       "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",
        "totalLabel": "Operating income"
       }
      }
     },
     "localname": "OperatingIncomeLoss",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesFutureMinimumPaymentsDue": {
     "auth_ref": [
      "r307",
      "r310"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of required minimum rental payments for leases having an initial or remaining non-cancelable letter-terms in excess of one year.",
        "label": "Total {1}",
        "terseLabel": "Total"
       }
      }
     },
     "localname": "OperatingLeasesFutureMinimumPaymentsDue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesFutureMinimumPaymentsDueCurrent": {
     "auth_ref": [
      "r307",
      "r310"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the next fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2017"
       }
      }
     },
     "localname": "OperatingLeasesFutureMinimumPaymentsDueCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesFutureMinimumPaymentsDueInTwoYears": {
     "auth_ref": [
      "r307",
      "r310"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of required minimum rental payments for operating leases having an initial or remaining non-cancelable lease term in excess of one year due in the second fiscal year following the latest fiscal year. Excludes interim and annual periods when interim periods are reported on a rolling approach, from latest balance sheet date.",
        "label": "2018"
       }
      }
     },
     "localname": "OperatingLeasesFutureMinimumPaymentsDueInTwoYears",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OperatingLeasesOfLesseeDisclosureTextBlock": {
     "auth_ref": [
      "r171",
      "r305",
      "r306",
      "r309",
      "r311"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure for lessee's operating leases. Includes, but is not limited to, description of lessee's operating lease, existence and terms of renewal or purchase options and escalation clauses, restrictions imposed by lease, such as those concerning dividends, additional debt, and further leasing, rent holidays, rent concessions, or leasehold improvement incentives and unusual provisions or conditions.",
        "label": "Note 5 - Leases and deferred gain on disposal of building assets"
       }
      }
     },
     "localname": "OperatingLeasesOfLesseeDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssets"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OperatingLossCarryforwards": {
     "auth_ref": [
      "r273"
     ],
     "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": "Operating Loss Carryforwards"
       }
      }
     },
     "localname": "OperatingLossCarryforwards",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock": {
     "auth_ref": [
      "r1",
      "r107",
      "r126",
      "r293"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for the organization, consolidation and basis of presentation of financial statements disclosure, and significant accounting policies of the reporting entity. May be provided in more than one note to the financial statements, as long as users are provided with an understanding of (1) the significant judgments and assumptions made by an enterprise in determining whether it must consolidate a VIE and/or disclose information about its involvement with a VIE, (2) the nature of restrictions on a consolidated VIE's assets reported by an enterprise in its statement of financial position, including the carrying amounts of such assets, (3) the nature of, and changes in, the risks associated with an enterprise's involvement with the VIE, and (4) how an enterprise's involvement with the VIE affects the enterprise's financial position, financial performance, and cash flows.  Describes procedure if disclosures are provided in more than one note to the financial statements.",
        "label": "Note 1 - Nature of Operations and Summary of Significant Accounting Policies"
       }
      }
     },
     "localname": "OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureAndSignificantAccountingPoliciesTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_OtherAssetsNoncurrent": {
     "auth_ref": [
      "r37"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_Assets",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of noncurrent assets classified as other.",
        "label": "Other assets"
       }
      }
     },
     "localname": "OtherAssetsNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditTax": {
     "auth_ref": [
      "r64"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of tax (expense) benefit of reclassification adjustment from accumulated other comprehensive (income) loss for prior service cost (credit) of defined benefit plan.",
        "label": "Amortization of prior year service cost"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossAmortizationAdjustmentFromAOCIPensionAndOtherPostretirementBenefitPlansForNetPriorServiceCostCreditTax",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfNetPeriodicBenefitCostDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossBeforeTax": {
     "auth_ref": [
      "r67",
      "r68",
      "r142"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before tax, after reclassification adjustments of other comprehensive income (loss).",
        "label": "Total {2}",
        "terseLabel": "Total"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossBeforeTax",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfWorldwideIncomeBeforeIncomeTaxesDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossNetOfTax": {
     "auth_ref": [
      "r67",
      "r68",
      "r69",
      "r181"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount after tax and reclassification adjustments of other comprehensive income (loss).",
        "label": "Total comprehensive income"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansAdjustmentNetOfTax": {
     "auth_ref": [
      "r61",
      "r63"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after tax and reclassification adjustment, of (increase) decrease in accumulated other comprehensive income for defined benefit plan.",
        "label": "Decrease (increase) in minimum pension liability",
        "verboseLabel": "Other comprehensive income"
       }
      }
     },
     "localname": "OtherComprehensiveIncomeLossPensionAndOtherPostretirementBenefitPlansAdjustmentNetOfTax",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherOperatingActivitiesCashFlowStatement": {
     "auth_ref": [],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 5.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Other cash or noncash adjustments to reconcile net income to cash provided by (used in) operating activities that are not separately disclosed in the statement of cash flows (for example,  cash received or cash paid during the current period for miscellaneous operating activities, net change during the reporting period in other assets or other liabilities).",
        "label": "Other"
       }
      }
     },
     "localname": "OtherOperatingActivitiesCashFlowStatement",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_OtherSalesRevenueNet": {
     "auth_ref": [
      "r74"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount, after sales adjustments, returns, allowances, and discounts, of revenue classified as other.",
        "label": "Other {1}",
        "terseLabel": "Other"
       }
      }
     },
     "localname": "OtherSalesRevenueNet",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquireBusinessesGross": {
     "auth_ref": [
      "r81"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cash outflow associated with the acquisition of business during the period. The cash portion only of the acquisition price.",
        "label": "Payments to Acquire Businesses, Gross"
       }
      }
     },
     "localname": "PaymentsToAcquireBusinessesGross",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote2GoodwillDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PaymentsToAcquirePropertyPlantAndEquipment": {
     "auth_ref": [
      "r82"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.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 assets.",
        "label": "Purchases of property and equipment",
        "negatedLabel": "Purchases of property and equipment"
       }
      }
     },
     "localname": "PaymentsToAcquirePropertyPlantAndEquipment",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionAndOtherPostretirementAndPostemploymentBenefitPlansLiabilitiesCurrentAndNoncurrent": {
     "auth_ref": [
      "r199",
      "r200",
      "r208",
      "r326",
      "r338"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liability, recognized in statement of financial position, for pension, other postretirement and postemployment benefits.",
        "label": "Accrued liability",
        "negatedLabel": "Accrued liability"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementAndPostemploymentBenefitPlansLiabilitiesCurrentAndNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfAmountsRecognizedInBalanceSheetDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionAndOtherPostretirementBenefitsDisclosureTextBlock": {
     "auth_ref": [
      "r226"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for pension and other postretirement benefits.",
        "label": "Note 6 - Employee Retirement Benefit Plans"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementBenefitsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlans"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent": {
     "auth_ref": [
      "r13",
      "r200",
      "r201",
      "r208"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_Liabilities",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of liability, recognized in statement of financial position, for defined benefit pension and other postretirement plans, classified as noncurrent.",
        "label": "Pension and retirement obligations, net of current portion"
       }
      }
     },
     "localname": "PensionAndOtherPostretirementDefinedBenefitPlansLiabilitiesNoncurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PensionExpense": {
     "auth_ref": [
      "r72",
      "r73",
      "r214",
      "r225"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 3.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cost (reversal of cost) for pension benefits. Excludes other postretirement benefits.",
        "label": "Pension Cost (Reversal of Cost)",
        "negatedLabel": "Pension"
       }
      }
     },
     "localname": "PensionExpense",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PlanAssetCategoriesDomain": {
     "auth_ref": [
      "r211",
      "r221"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Major categories of plan assets based on the nature and risk of assets in an employer's plan(s).",
        "label": "Plan Asset Categories"
       }
      }
     },
     "localname": "PlanAssetCategoriesDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PolicyTextBlockAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Policies"
       }
      }
     },
     "localname": "PolicyTextBlockAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_PostemploymentBenefitsLiabilityCurrent": {
     "auth_ref": [
      "r42"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 5.0,
       "parentTag": "us-gaap_LiabilitiesCurrent",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "For a classified balance sheet, the carrying amount as of the balance sheet date of the portion of the obligations recognized for the various benefits provided to former or inactive employees, their beneficiaries, and covered dependents after employment but before retirement that is payable within one year of the balance sheet date.",
        "label": "Current portion of retirement obligations"
       }
      }
     },
     "localname": "PostemploymentBenefitsLiabilityCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PreferredClassAMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Outstanding nonredeemable preferred class A stock or outstanding convertible preferred class A 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": "Preferred Class A"
       }
      }
     },
     "localname": "PreferredClassAMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredClassBMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Outstanding nonredeemable preferred class B stock or outstanding preferred class B 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": "Preferred Class B"
       }
      }
     },
     "localname": "PreferredClassBMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PreferredStockNoParValue": {
     "auth_ref": [
      "r15"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Face amount per share of no-par value preferred stock nonredeemable or redeemable solely at the option of the issuer.",
        "label": "Preferred Stock, No Par Value"
       }
      }
     },
     "localname": "PreferredStockNoParValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_PreferredStockSharesAuthorized": {
     "auth_ref": [
      "r15"
     ],
     "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": "Preferred Stock, Shares Authorized"
       }
      }
     },
     "localname": "PreferredStockSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical",
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockSharesOutstanding": {
     "auth_ref": [
      "r15"
     ],
     "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": "Preferred Stock, Shares Outstanding"
       }
      }
     },
     "localname": "PreferredStockSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_PreferredStockTextBlock": {
     "auth_ref": [
      "r187"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for terms, amounts, nature of changes, rights and privileges, dividends, and other matters related to preferred stock.",
        "label": "Note 11 - Preferred Stock"
       }
      }
     },
     "localname": "PreferredStockTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStock"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PreferredStockValue": {
     "auth_ref": [
      "r15"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 1.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": 1.0
      }
     },
     "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": "Preferred stock, no par value: 10,000,000 shares authorized; no shares outstanding"
       }
      }
     },
     "localname": "PreferredStockValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PrepaidExpenseAndOtherAssetsCurrent": {
     "auth_ref": [
      "r4",
      "r30",
      "r31"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_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 in future periods, and amount of other assets that are expected to be realized or consumed within one year or the normal operating cycle, if longer.",
        "label": "Prepaid expenses and deposits"
       }
      }
     },
     "localname": "PrepaidExpenseAndOtherAssetsCurrent",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProFormaWeightedAverageSharesOutstandingDiluted": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The weighted average number of shares or units and dilutive common stock or unit equivalents outstanding in the calculation of proforma diluted earnings per share (earnings per unit), which is commonly presented in initial public offerings based on the terms of the offering.",
        "label": "Pro Forma Weighted Average Shares Outstanding, Diluted"
       }
      }
     },
     "localname": "ProFormaWeightedAverageSharesOutstandingDiluted",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ProceedsFromLeasePayments": {
     "auth_ref": [
      "r313",
      "r314"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash inflows from lease payments.",
        "label": "Proceeds from Lease Payments"
       }
      }
     },
     "localname": "ProceedsFromLeasePayments",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProceedsFromStockOptionsExercised": {
     "auth_ref": [
      "r83",
      "r251"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash inflow from exercise of stock options granted under share-based compensation arrangement.",
        "label": "Proceeds from shares issued on exercise of options"
       }
      }
     },
     "localname": "ProceedsFromStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrual": {
     "auth_ref": [
      "r175",
      "r176",
      "r331"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Carrying value as of the balance sheet date of obligations incurred through that date and payable for estimated claims under standard and extended warranty protection rights granted to customers.",
        "label": "Ending balance",
        "periodEndLabel": "Ending balance",
        "periodStartLabel": "Ending balance"
       }
      }
     },
     "localname": "ProductWarrantyAccrual",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesWarrantyReserveScheduleOfProductWarrantyReserveDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualPayments": {
     "auth_ref": [
      "r172"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of decrease in the standard and extended product warranty accrual from payments made in cash or in kind to satisfy claims under the terms of the standard and extended product warranty.",
        "label": "Warranty costs",
        "negatedLabel": "Warranty costs"
       }
      }
     },
     "localname": "ProductWarrantyAccrualPayments",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesWarrantyReserveScheduleOfProductWarrantyReserveDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProductWarrantyAccrualPeriodIncreaseDecrease": {
     "auth_ref": [
      "r174"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in the standard and extended product warranty liability.",
        "label": "Additions to warranty reserve"
       }
      }
     },
     "localname": "ProductWarrantyAccrualPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesWarrantyReserveScheduleOfProductWarrantyReserveDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ProfitLoss": {
     "auth_ref": [
      "r286",
      "r287",
      "r288",
      "r291",
      "r292"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 1.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInOperatingActivities",
       "weight": 1.0
      },
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": null,
       "parentTag": null,
       "root": true,
       "weight": null
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The consolidated profit or loss for the period, net of income taxes, including the portion attributable to the noncontrolling interest.",
        "label": "Net income",
        "totalLabel": "Net income"
       }
      }
     },
     "localname": "ProfitLoss",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS",
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentByTypeAxis": {
     "auth_ref": [
      "r35",
      "r167"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by type of long-lived, physical assets used to produce goods and services and not intended for resale.",
        "label": "Property, Plant and Equipment, Type [Axis]"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentByTypeAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentGross": {
     "auth_ref": [
      "r34",
      "r165"
     ],
     "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, Plant and Equipment, Gross"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentGross",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "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, Plant and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentNet": {
     "auth_ref": [
      "r8",
      "r9",
      "r167",
      "r344"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 3.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"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentNet",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentPolicyTextBlock": {
     "auth_ref": [
      "r33",
      "r98",
      "r167"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for long-lived, physical assets used in the normal conduct of business and not intended for resale. Includes, but is not limited to, basis of assets, depreciation and depletion methods used, including composite deprecation, estimated useful lives, capitalization policy, accounting treatment for costs incurred for repairs and maintenance, capitalized interest and the method it is calculated, disposals and impairments.",
        "label": "Property and Equipment"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTextBlock": {
     "auth_ref": [
      "r8",
      "r167"
     ],
     "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": "Schedule of Depreciation"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentTypeDomain": {
     "auth_ref": [
      "r8",
      "r165"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Listing of long-lived, physical assets that are used in the normal conduct of business to produce goods and services and not intended for resale. Examples include land, buildings, machinery and equipment, and other types of furniture and equipment including, but not limited to, office equipment, furniture and fixtures, and computer equipment and software.",
        "label": "Property, Plant and Equipment, Type"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentTypeDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_PropertyPlantAndEquipmentUsefulLife": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Useful life of long lived, physical assets used in the normal conduct of business and not intended for resale, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. Examples include, but not limited to, land, buildings, machinery and equipment, office equipment, furniture and fixtures, and computer equipment.",
        "label": "Property, Plant and Equipment, Useful Life"
       }
      }
     },
     "localname": "PropertyPlantAndEquipmentUsefulLife",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_RangeAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by range, including, but not limited to, upper and lower bounds.",
        "label": "Range [Axis]"
       }
      }
     },
     "localname": "RangeAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RangeMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Extent of variation, for example, but not limited to, upper and lower bounds.",
        "label": "Range"
       }
      }
     },
     "localname": "RangeMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RealEstateAndAccumulatedDepreciationCarryingAmountOfBuildingsAndImprovements": {
     "auth_ref": [
      "r0",
      "r350"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount before accumulated depreciation of buildings and improvements for entities with a substantial portion of business acquiring and holding investment real estate. Excludes real estate not held as an investment or interest.",
        "label": "Property Carrying Value"
       }
      }
     },
     "localname": "RealEstateAndAccumulatedDepreciationCarryingAmountOfBuildingsAndImprovements",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RelatedPartyDomain": {
     "auth_ref": [
      "r320"
     ],
     "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.",
        "label": "Related Party"
       }
      }
     },
     "localname": "RelatedPartyDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RelatedPartyTransactionsByRelatedPartyAxis": {
     "auth_ref": [
      "r315",
      "r316",
      "r317",
      "r318",
      "r319"
     ],
     "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 [Axis]"
       }
      }
     },
     "localname": "RelatedPartyTransactionsByRelatedPartyAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_RepaymentsOfLongTermDebt": {
     "auth_ref": [
      "r84"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS": {
       "order": 2.0,
       "parentTag": "us-gaap_NetCashProvidedByUsedInFinancingActivities",
       "weight": -1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cash outflow for debt initially having maturity due after one year or beyond the normal operating cycle, if longer.",
        "label": "Principal payments on long-term debt",
        "negatedLabel": "Principal payments on long-term debt"
       }
      }
     },
     "localname": "RepaymentsOfLongTermDebt",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchAndDevelopmentExpense": {
     "auth_ref": [
      "r257",
      "r351"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 2.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",
        "negatedLabel": "Research and development"
       }
      }
     },
     "localname": "ResearchAndDevelopmentExpense",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ResearchDevelopmentAndComputerSoftwarePolicyTextBlock": {
     "auth_ref": [
      "r36",
      "r98",
      "r160",
      "r161",
      "r351"
     ],
     "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": "Software Development Costs"
       }
      }
     },
     "localname": "ResearchDevelopmentAndComputerSoftwarePolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RestrictedAssetsDisclosureTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The entire disclosure for assets that are restricted in their use, generally by contractual agreements or regulatory requirements. This would include, but not limited to, a description of the restricted assets and the terms of the restriction.",
        "label": "Schedule of Restricted Cash"
       }
      }
     },
     "localname": "RestrictedAssetsDisclosureTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RestrictedCashAndCashEquivalents": {
     "auth_ref": [
      "r7",
      "r93",
      "r96",
      "r323",
      "r340"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage. 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": "Restricted cash {1}",
        "terseLabel": "Restricted cash"
       }
      }
     },
     "localname": "RestrictedCashAndCashEquivalents",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRestrictedCashScheduleOfRestrictedCashDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RestrictedCashAndCashEquivalentsAtCarryingValue": {
     "auth_ref": [
      "r2",
      "r7",
      "r93",
      "r96"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 2.0,
       "parentTag": "us-gaap_AssetsCurrent",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of cash and cash equivalents restricted as to withdrawal or usage, classified as current. 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": "Restricted cash"
       }
      }
     },
     "localname": "RestrictedCashAndCashEquivalentsAtCarryingValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsAccumulatedDeficit": {
     "auth_ref": [
      "r22",
      "r183",
      "r341"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 5.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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_RetainedEarningsMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The cumulative amount of the reporting entity's undistributed earnings or deficit.",
        "label": "Retained Earnings"
       }
      }
     },
     "localname": "RetainedEarningsMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_RevenueFromExternalCustomersByGeographicAreasTableTextBlock": {
     "auth_ref": [
      "r128"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of revenue from external customers by geographic areas attributed to the entity's country of domicile and to foreign countries from which the entity derives revenue.",
        "label": "Note 12 - Geographic Information"
       }
      }
     },
     "localname": "RevenueFromExternalCustomersByGeographicAreasTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformation"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRecognitionPolicyTextBlock": {
     "auth_ref": [
      "r97",
      "r98",
      "r99",
      "r190"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue recognition. If the entity has different policies for different types of revenue transactions, the policy for each material type of transaction is generally disclosed. If a sales transaction has multiple element arrangements (for example, delivery of multiple products, services or the rights to use assets) the disclosure may indicate the accounting policy for each unit of accounting as well as how units of accounting are determined and valued. The disclosure may encompass important judgment as to appropriateness of principles related to recognition of revenue. The disclosure also may indicate the entity's treatment of any unearned or deferred revenue that arises from the transaction.",
        "label": "Revenue Recognition"
       }
      }
     },
     "localname": "RevenueRecognitionPolicyTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_RevenueRecognitionSalesOfServices": {
     "auth_ref": [
      "r98",
      "r190",
      "r191"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for revenue recognition for sales of a service. The entity also may disclose how it recognizes cost of sales for such a service transaction and its treatment of any unearned or deferred revenue that arises from the transaction.",
        "label": "Schedule of Revenue Recognition"
       }
      }
     },
     "localname": "RevenueRecognitionSalesOfServices",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SalesRevenueNet": {
     "auth_ref": [
      "r75"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_GrossProfit",
       "weight": 1.0
      }
     },
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Total revenue from sale of goods and services rendered during the reporting period, in the normal course of business, reduced by sales returns and allowances, and sales discounts.",
        "label": "Sales"
       }
      }
     },
     "localname": "SalesRevenueNet",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SalesRevenueNetMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Revenue from sale of goods and services rendered, in the normal course of business, after sales returns and allowances, and sales discounts, when it serves as a benchmark in a concentration of risk calculation.",
        "label": "Sales Revenue, Net"
       }
      }
     },
     "localname": "SalesRevenueNetMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScenarioUnspecifiedDomain": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Any scenario, that is, the particular reporting scenario is left unspecified. Scenarios distinguish among different kinds of business reporting facts, as for example actual versus budgeted figures.",
        "label": "Scenario, Unspecified"
       }
      }
     },
     "localname": "ScenarioUnspecifiedDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_ScheduleOfAmountsRecognizedInBalanceSheetTableTextBlock": {
     "auth_ref": [
      "r208"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the amounts that are recognized in the balance sheet (or statement of financial position) for pension plans and/or other employee benefit plans, showing separately the assets and current and noncurrent liabilities (if applicable) recognized.",
        "label": "Schedule of Amounts Recognized in Balance Sheet"
       }
      }
     },
     "localname": "ScheduleOfAmountsRecognizedInBalanceSheetTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock": {
     "auth_ref": [
      "r217"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the net gain (loss) and net prior service cost or credit recognized in other comprehensive income (loss) for the period for pension plans and/or other employee benefit plans, and reclassification adjustments of other comprehensive income (loss) for the period, as those amounts, including amortization of the net transition asset or obligation, are recognized as components of net periodic benefit cost.",
        "label": "Schedule of Amounts Recognized in Other Comprehensive Income (Loss)"
       }
      }
     },
     "localname": "ScheduleOfAmountsRecognizedInOtherComprehensiveIncomeLossTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock": {
     "auth_ref": [
      "r279"
     ],
     "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": "Schedule of Components of Income Tax Expense (Benefit)"
       }
      }
     },
     "localname": "ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfCostsOfRetirementPlansTableTextBlock": {
     "auth_ref": [
      "r220"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the costs related to the various types of retirement plans including defined benefit pension plan cost, defined contribution plan cost, other postretirement benefit plan cost, and net periodic benefit cost.",
        "label": "Schedule of Costs of Retirement Plans, changes in benefit obligation"
       }
      }
     },
     "localname": "ScheduleOfCostsOfRetirementPlansTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDebtTableTextBlock": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of information pertaining to short-term and long-debt instruments or arrangements, including but not limited to identification of terms, features, collateral requirements and other information necessary to a fair presentation.",
        "label": "Schedule of Long-term Debt"
       }
      }
     },
     "localname": "ScheduleOfDebtTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock": {
     "auth_ref": [
      "r272"
     ],
     "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": "Schedule of Deferred Income Tax Assets and Liabilities"
       }
      }
     },
     "localname": "ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock": {
     "auth_ref": [
      "r115"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of an entity's basic and diluted earnings per share calculations, including a reconciliation of numerators and denominators of the basic and diluted per-share computations for income from continuing operations.",
        "label": "Schedule of Net Income Per Common Share"
       }
      }
     },
     "localname": "ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock": {
     "auth_ref": [
      "r264"
     ],
     "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": "Schedule of Effective Income Tax Rate Reconciliation"
       }
      }
     },
     "localname": "ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfExpectedBenefitPaymentsTableTextBlock": {
     "auth_ref": [
      "r213"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of benefits expected to be paid by pension plans and/or other employee benefit plans in each of the next five fiscal years and in the aggregate for the five fiscal years thereafter.",
        "label": "Schedule of Expected Benefit Payments"
       }
      }
     },
     "localname": "ScheduleOfExpectedBenefitPaymentsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock": {
     "auth_ref": [
      "r311"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of future minimum payments required in the aggregate and for each of the five succeeding fiscal years for operating leases having initial or remaining noncancelable lease terms in excess of one year and the total minimum rentals to be received in the future under noncancelable subleases as of the balance sheet date.",
        "label": "Schedule of Future Minimum Payments for Operating Leases"
       }
      }
     },
     "localname": "ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock": {
     "auth_ref": [
      "r102"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of income before income tax between domestic and foreign jurisdictions.",
        "label": "Schedule of Worldwide Income Before Income Taxes"
       }
      }
     },
     "localname": "ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfInventoryCurrentTableTextBlock": {
     "auth_ref": [
      "r6",
      "r27",
      "r28",
      "r29"
     ],
     "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"
       }
      }
     },
     "localname": "ScheduleOfInventoryCurrentTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfMaturitiesOfLongTermDebtTableTextBlock": {
     "auth_ref": [
      "r178"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the combined aggregate amount of maturities and sinking fund requirements for all long-term borrowings for each of the five years following the date of the latest balance sheet date presented.",
        "label": "Schedule of Principal maturities"
       }
      }
     },
     "localname": "ScheduleOfMaturitiesOfLongTermDebtTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfNetPeriodicBenefitCostNotYetRecognizedTableTextBlock": {
     "auth_ref": [
      "r218"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the amounts related to pension plans and/or other employee benefit plans in accumulated other comprehensive income or loss that have not yet been recognized as components of net periodic benefit cost, such as the net gain (loss), net prior service cost or credit, and net transition asset or obligation.",
        "label": "Schedule of Net Periodic Benefit Cost"
       }
      }
     },
     "localname": "ScheduleOfNetPeriodicBenefitCostNotYetRecognizedTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfProductWarrantyLiabilityTableTextBlock": {
     "auth_ref": [
      "r177"
     ],
     "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": "Schedule of Product Warranty Reserve"
       }
      }
     },
     "localname": "ScheduleOfProductWarrantyLiabilityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock": {
     "auth_ref": [
      "r75",
      "r127"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the names of foreign countries from which revenue is material and the amount of revenue from external customers attributed to those countries. An entity may also provide subtotals of geographic information about groups of countries.",
        "label": "Schedule of Sales by Geographic Location"
       }
      }
     },
     "localname": "ScheduleOfRevenueFromExternalCustomersAttributedToForeignCountriesByGeographicAreaTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock": {
     "auth_ref": [
      "r232",
      "r239",
      "r242"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure for stock option plans. Includes, but is not limited to, outstanding awards at beginning and end of year, grants, exercises, forfeitures, and weighted-average grant date fair value.",
        "label": "Schedule of Stock Option Plan Activity"
       }
      }
     },
     "localname": "ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock": {
     "auth_ref": [
      "r244"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Tabular disclosure of the significant assumptions used during the year to estimate the fair value of stock options, including, but not limited to: (a) expected term of share options and similar instruments, (b) expected volatility of the entity's shares, (c) expected dividends, (d) risk-free rate(s), and (e) discount for post-vesting restrictions.",
        "label": "Schedule of Stock Options Valuation Assumptions"
       }
      }
     },
     "localname": "ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanTables"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SegmentGeographicalDomain": {
     "auth_ref": [
      "r0",
      "r129",
      "r350"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Geographical area.",
        "label": "Geographical"
       }
      }
     },
     "localname": "SegmentGeographicalDomain",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_SellingGeneralAndAdministrativeExpense": {
     "auth_ref": [
      "r79",
      "r143"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS": {
       "order": 1.0,
       "parentTag": "us-gaap_OperatingExpenses",
       "weight": 1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The aggregate total costs related to selling a firm's product and services, as well as all other general and administrative expenses. Direct selling expenses (for example, credit, warranty, and advertising) are expenses that can be directly linked to the sale of specific products. Indirect selling expenses are expenses that cannot be directly linked to the sale of specific products, for example telephone expenses, Internet, and postal charges. General and administrative expenses include salaries of non-sales personnel, rent, utilities, communication, etc.",
        "label": "Selling, general and administrative",
        "negatedLabel": "Selling, general and administrative"
       }
      }
     },
     "localname": "SellingGeneralAndAdministrativeExpense",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate": {
     "auth_ref": [
      "r246"
     ],
     "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": "Expected Volatility"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionsValuationAssumptionsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate": {
     "auth_ref": [
      "r247"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionsValuationAssumptionsDetails"
     ],
     "xbrltype": "percentItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized": {
     "auth_ref": [
      "r230"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The maximum number of shares (or other type of equity) originally approved (usually by shareholders and board of directors), net of any subsequent amendments and adjustments, for awards under the equity-based compensation plan. As stock or unit options and equity instruments other than options are awarded to participants, the shares or units remain authorized and become reserved for issuance under outstanding awards (not necessarily vested).",
        "label": "Number of Shares Authorized"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber": {
     "auth_ref": [
      "r235"
     ],
     "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": "Exercisable as of end of the period",
        "periodEndLabel": "Exercisable as of end of the period"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice": {
     "auth_ref": [
      "r235"
     ],
     "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": "Exercisable as of end of the period, weighted average exercise price",
        "periodEndLabel": "Exercisable as of end of the period, weighted average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue": {
     "auth_ref": [
      "r241"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of accumulated difference between fair value of underlying shares on dates of exercise and exercise price on options exercised (or share units converted) into shares.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Exercises in Period, Intrinsic Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod": {
     "auth_ref": [
      "r238"
     ],
     "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": "Forfeited or expired",
        "negatedLabel": "Forfeited or expired"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice": {
     "auth_ref": [
      "r238"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average price of options that were either forfeited or expired.",
        "label": "Forfeited or expired, weighted average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresAndExpirationsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod": {
     "auth_ref": [
      "r236"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Net number of share options (or share units) granted during the period.",
        "label": "Granted"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriod",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Gross number of share options (or share units) granted during the period.",
        "label": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross",
        "verboseLabel": "Share-based Compensation Arrangement by Share-based Payment Award, Options, Grants in Period, Gross"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue": {
     "auth_ref": [
      "r240"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The weighted average grant-date fair value of options granted during the reporting period as calculated by applying the disclosed option pricing methodology.",
        "label": "Options, Granted, Weighted Average Grant Date Fair Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue": {
     "auth_ref": [
      "r250"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount by which the current fair value of the underlying stock exceeds the exercise price of options outstanding.",
        "label": "Options, Outstanding, Aggregate Intrinsic Value"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber": {
     "auth_ref": [
      "r234",
      "r250"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of options outstanding, including both vested and non-vested options.",
        "label": "Outstanding at beginning of year",
        "periodEndLabel": "Outstanding at beginning of year",
        "periodStartLabel": "Outstanding at beginning of year"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice": {
     "auth_ref": [
      "r233"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average price at which grantees can acquire the shares reserved for issuance under the stock option plan.",
        "label": "Outstanding at beginning of year, weighted average exercise price",
        "periodEndLabel": "Outstanding at beginning of year, weighted average exercise price",
        "periodStartLabel": "Outstanding at beginning of year, weighted average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "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": "Exercised, weighted average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "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": "Granted, weighted average exercise price"
       }
      }
     },
     "localname": "ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "perShareItemType"
    },
    "us-gaap_ShareBasedCompensationOptionAndIncentivePlansPolicy": {
     "auth_ref": [
      "r98",
      "r229",
      "r231"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for stock option and stock incentive plans. This disclosure may include (1) the types of stock option or incentive plans sponsored by the entity (2) the groups that participate in (or are covered by) each plan (3) significant plan provisions and (4) how stock compensation is measured, and the methodologies and significant assumptions used to determine that measurement.",
        "label": "Stock-Based Compensation"
       }
      }
     },
     "localname": "ShareBasedCompensationOptionAndIncentivePlansPolicy",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1": {
     "auth_ref": [
      "r245",
      "r252"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Expected term of share-based compensation awards, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Expected life (in years)"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionsValuationAssumptionsDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1": {
     "auth_ref": [
      "r250"
     ],
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of difference between fair value of the underlying shares reserved for issuance and exercise price of vested portions of options outstanding and currently exercisable.",
        "label": "Options, Exercisable, Aggregate Intrinsic Value"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1": {
     "auth_ref": [
      "r250"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Weighted average remaining contractual term for vested portions of options outstanding and currently exercisable or convertible, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days.",
        "label": "Options exercisable, weighted average remaining contractual term"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2": {
     "auth_ref": [
      "r243"
     ],
     "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": "Options outstanding, weighted average remaining contractual term"
       }
      }
     },
     "localname": "SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails"
     ],
     "xbrltype": "durationItemType"
    },
    "us-gaap_SharesOutstanding": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of shares issued which are neither cancelled nor held in the treasury.",
        "label": "Shares, Outstanding, Beginning Balance",
        "periodEndLabel": "Shares, Outstanding, Ending Balance",
        "periodStartLabel": "Shares, Outstanding, Beginning Balance"
       }
      }
     },
     "localname": "SharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StandardProductWarrantyPolicy": {
     "auth_ref": [
      "r98",
      "r173"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for standard warranties including the methodology for measuring the liability.",
        "label": "Warranty Reserve"
       }
      }
     },
     "localname": "StandardProductWarrantyPolicy",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_StateAndLocalJurisdictionMember": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Designated tax department of a state or local government entitled to levy and collect income taxes from the entity.",
        "label": "State and Local Jurisdiction"
       }
      }
     },
     "localname": "StateAndLocalJurisdictionMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_StatementClassOfStockAxis": {
     "auth_ref": [
      "r14",
      "r15",
      "r16",
      "r181"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by the different classes of stock of the entity.",
        "label": "Class of Stock [Axis]"
       }
      }
     },
     "localname": "StatementClassOfStockAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementEquityComponentsAxis": {
     "auth_ref": [
      "r48",
      "r181"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by component of equity.",
        "label": "Equity Components [Axis]"
       }
      }
     },
     "localname": "StatementEquityComponentsAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementGeographicalAxis": {
     "auth_ref": [
      "r0",
      "r129",
      "r196",
      "r197",
      "r350"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by geographical components.",
        "label": "Geographical [Axis]"
       }
      }
     },
     "localname": "StatementGeographicalAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT",
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementScenarioAxis": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Information by scenario to be reported. Scenarios distinguish among different kinds of business reporting facts, as for example actual versus budgeted figures.",
        "label": "Scenario [Axis]"
       }
      }
     },
     "localname": "StatementScenarioAxis",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StatementTable": {
     "auth_ref": [],
     "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"
       }
      }
     },
     "localname": "StatementTable",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT",
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote11PreferredStockDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote12GeographicInformationScheduleOfSalesByGeographicLocationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote13SignificantCustomersDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPropertyAndEquipmentScheduleOfDepreciationDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesRevenueRecognitionScheduleOfRevenueRecognitionDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote4LeaseReceivableDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote5LeasesAndDeferredGainOnDisposalOfBuildingAssetsScheduleOfFutureMinimumPaymentsForOperatingLeasesDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote6EmployeeRetirementBenefitPlansScheduleOfExpectedBenefitPaymentsDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote7DebtScheduleOfLongTermDebtDetails",
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesDetails"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesPeriodIncreaseDecrease": {
     "auth_ref": [
      "r181"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The increase (decrease) during the period in the number of shares issued.",
        "label": "Stock Issued During Period, Shares, Period Increase (Decrease)"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised": {
     "auth_ref": [
      "r15",
      "r16",
      "r181",
      "r183",
      "r237"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of share options (or share units) exercised during the current period.",
        "label": "Issuance of shares on exercise of options {1}",
        "negatedLabel": "Exercised",
        "terseLabel": "Issuance of shares on exercise of options"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodSharesStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT",
      "http://www.es.com/20171231/role/idr_DisclosureNote10StockOptionPlanScheduleOfStockOptionPlanActivityDetails"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised": {
     "auth_ref": [
      "r48",
      "r181",
      "r183"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Value of stock issued as a result of the exercise of stock options.",
        "label": "Issuance of shares on exercise of options"
       }
      }
     },
     "localname": "StockIssuedDuringPeriodValueStockOptionsExercised",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquity": {
     "auth_ref": [
      "r16",
      "r23",
      "r24",
      "r140"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 2.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": "Total stockholders' equity",
        "totalLabel": "Total stockholders' equity"
       }
      }
     },
     "localname": "StockholdersEquity",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_StockholdersEquityAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Stockholders' equity:"
       }
      }
     },
     "localname": "StockholdersEquityAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest": {
     "auth_ref": [
      "r284",
      "r285",
      "r290"
     ],
     "crdr": "credit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of stockholders' equity (deficit), net of receivables from officers, directors, owners, and affiliates of the entity, attributable to both the parent and noncontrolling interests. Amount excludes temporary equity. Alternate caption for the concept is permanent equity.",
        "label": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest, Beginning Balance",
        "periodEndLabel": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest, Ending Balance",
        "periodStartLabel": "Stockholders' Equity, Including Portion Attributable to Noncontrolling Interest, Beginning Balance"
       }
      }
     },
     "localname": "StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_SupplementalCashFlowElementsAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Supplemental disclosures of cash flow information"
       }
      }
     },
     "localname": "SupplementalCashFlowElementsAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFCASHFLOWS"
     ],
     "xbrltype": "stringItemType"
    },
    "us-gaap_TableTextBlockSupplementAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Tables/Schedules"
       }
      }
     },
     "localname": "TableTextBlockSupplementAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_TextBlockAbstract": {
     "auth_ref": [],
     "lang": {
      "en-US": {
       "role": {
        "label": "Details"
       }
      }
     },
     "localname": "TextBlockAbstract",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "xbrltype": "stringItemType"
    },
    "us-gaap_TradeAndOtherAccountsReceivablePolicy": {
     "auth_ref": [
      "r20",
      "r26",
      "r98",
      "r133",
      "r135",
      "r138",
      "r141",
      "r330",
      "r343"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Disclosure of accounting policy for trade and other accounts receivables. This disclosure may include the basis at which such receivables are carried in the entity's statements of financial position (for example, net realizable value), how the entity determines the level of its allowance for doubtful accounts, when impairments, charge-offs or recoveries are recognized, and the entity's income recognition policies for such receivables, including its treatment of related fees and costs, its treatment of premiums, discounts or unearned income, when accrual of interest is discontinued, how the entity records payments received on nonaccrual receivables and its policy for resuming accrual of interest on such receivables.  If the enterprise holds a large number of similar loans, disclosure may include the accounting policy for the anticipation of prepayments and significant assumptions underlying prepayment estimates for amortization of premiums, discounts, and nonrefundable fees and costs.",
        "label": "Trade Accounts Receivable"
       }
      }
     },
     "localname": "TradeAndOtherAccountsReceivablePolicy",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_TreasuryStockCommonMember": {
     "auth_ref": [
      "r50",
      "r184"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Previously issued common shares repurchased by the issuing entity and held in treasury.",
        "label": "Treasury Stock, Common"
       }
      }
     },
     "localname": "TreasuryStockCommonMember",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFSTOCKHOLDERSEQUITYDEFICIT"
     ],
     "xbrltype": "domainItemType"
    },
    "us-gaap_TreasuryStockShares": {
     "auth_ref": [
      "r47",
      "r184"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Number of common and preferred shares that were previously issued and that were repurchased by the issuing entity and held in treasury on the financial statement date. This stock has no voting rights and receives no dividends.",
        "label": "Treasury Stock, Shares"
       }
      }
     },
     "localname": "TreasuryStockShares",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETSParenthetical"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_TreasuryStockValue": {
     "auth_ref": [
      "r47",
      "r184",
      "r185"
     ],
     "calculation": {
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS": {
       "order": 4.0,
       "parentTag": "us-gaap_StockholdersEquity",
       "weight": -1.0
      }
     },
     "crdr": "debit",
     "lang": {
      "en-US": {
       "role": {
        "documentation": "The amount allocated to treasury stock. Treasury stock is common and preferred shares of an entity that were issued, repurchased by the entity, and are held in its treasury.",
        "label": "Common stock in treasury, at cost, 264,350 shares",
        "negatedLabel": "Common stock in treasury, at cost, 264,350 shares"
       }
      }
     },
     "localname": "TreasuryStockValue",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONDENSEDCONSOLIDATEDBALANCESHEETS"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_UseOfEstimates": {
     "auth_ref": [
      "r123",
      "r124",
      "r125"
     ],
     "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/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesPolicies"
     ],
     "xbrltype": "textBlockItemType"
    },
    "us-gaap_ValuationAllowancesAndReservesPeriodIncreaseDecrease": {
     "auth_ref": [
      "r106"
     ],
     "lang": {
      "en-US": {
       "role": {
        "documentation": "Amount of increase (decrease) in allowances and reserves, the valuation and qualifying accounts that are either netted against the cost of an asset or that reflect a liability established to represent expected future costs.",
        "label": "Valuation allowance increase"
       }
      }
     },
     "localname": "ValuationAllowancesAndReservesPeriodIncreaseDecrease",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_DisclosureNote8IncomeTaxesScheduleOfComponentsOfIncomeTaxExpenseBenefitDetails"
     ],
     "xbrltype": "monetaryItemType"
    },
    "us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding": {
     "auth_ref": [
      "r111",
      "r113"
     ],
     "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": "Weighted average common shares outstanding - diluted"
       }
      }
     },
     "localname": "WeightedAverageNumberOfDilutedSharesOutstanding",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS"
     ],
     "xbrltype": "sharesItemType"
    },
    "us-gaap_WeightedAverageNumberOfSharesOutstandingBasic": {
     "auth_ref": [
      "r110",
      "r113"
     ],
     "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": "Weighted average common shares outstanding - basic"
       }
      }
     },
     "localname": "WeightedAverageNumberOfSharesOutstandingBasic",
     "nsuri": "http://fasb.org/us-gaap/2017-01-31",
     "presentation": [
      "http://www.es.com/20171231/role/idr_CONSOLIDATEDSTATEMENTSOFOPERATIONS",
      "http://www.es.com/20171231/role/idr_DisclosureNote1NatureOfOperationsAndSummaryOfSignificantAccountingPoliciesNetIncomePerCommonShareScheduleOfNetIncomePerCommonShareDetails"
     ],
     "xbrltype": "sharesItemType"
    }
   },
   "unitCount": 4
  }
 },
 "std_ref": {
  "r0": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-04.(c) Schedule III)",
   "Topic": "205",
   "URI": "http://asc.fasb.org/extlink&oid=27047687&loc=d3e5864-122674"
  },
  "r1": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "205",
   "URI": "http://asc.fasb.org/topic&trid=2122149"
  },
  "r10": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(19))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r100": {
   "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=26873400&loc=d3e23780-122690"
  },
  "r101": {
   "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=26873400&loc=d3e23780-122690"
  },
  "r102": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.4-08.(h)(1)(i))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e23780-122690"
  },
  "r103": {
   "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=26873400&loc=d3e23780-122690"
  },
  "r104": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-04.(a))",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24072-122690"
  },
  "r105": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.12-09)",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24092-122690"
  },
  "r106": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=26873400&loc=d3e24092-122690"
  },
  "r107": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "235",
   "URI": "http://asc.fasb.org/topic&trid=2122369"
  },
  "r108": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=6368906&loc=d3e21843-107793"
  },
  "r109": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "250",
   "URI": "http://asc.fasb.org/extlink&oid=64853466&loc=d3e22595-107794"
  },
  "r11": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r110": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=96947427&loc=d3e1448-109256"
  },
  "r111": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=96947427&loc=d3e1505-109256"
  },
  "r112": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=96947427&loc=d3e1252-109256"
  },
  "r113": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r114": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r115": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3550-109257"
  },
  "r116": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=6371337&loc=d3e3630-109257"
  },
  "r117": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "52",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "260",
   "URI": "http://asc.fasb.org/extlink&oid=96948231&loc=d3e4984-109258"
  },
  "r118": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=68064558&loc=d3e777-108305"
  },
  "r119": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.10-01(a)(5))",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=27015980&loc=d3e46468-122699"
  },
  "r12": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r120": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.10-01.(a)(5))",
   "Topic": "270",
   "URI": "http://asc.fasb.org/extlink&oid=27015980&loc=d3e46468-122699"
  },
  "r121": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "18",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=84177426&loc=d3e6351-108592"
  },
  "r122": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=84177426&loc=d3e6404-108592"
  },
  "r123": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=84177426&loc=d3e6061-108592"
  },
  "r124": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=84177426&loc=d3e6132-108592"
  },
  "r125": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "275",
   "URI": "http://asc.fasb.org/extlink&oid=84177426&loc=d3e6143-108592"
  },
  "r126": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "275",
   "URI": "http://asc.fasb.org/topic&trid=2134479"
  },
  "r127": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=68060357&loc=d3e9038-108599"
  },
  "r128": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "a",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=68060357&loc=d3e9038-108599"
  },
  "r129": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "41",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=68060357&loc=d3e9038-108599"
  },
  "r13": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r130": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "42",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "280",
   "URI": "http://asc.fasb.org/extlink&oid=68060357&loc=d3e9054-108599"
  },
  "r131": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Topic": "305",
   "URI": "http://asc.fasb.org/extlink&oid=6375392&loc=d3e26790-107797"
  },
  "r132": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e5162-111524"
  },
  "r133": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11B",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=SL6953423-111524"
  },
  "r134": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b,d)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e5212-111524"
  },
  "r135": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e5212-111524"
  },
  "r136": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e5066-111524"
  },
  "r137": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e5074-111524"
  },
  "r138": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e5093-111524"
  },
  "r139": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "310",
   "URI": "http://asc.fasb.org/extlink&oid=84173941&loc=d3e5144-111524"
  },
  "r14": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r140": {
   "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=27010918&loc=d3e74512-122707"
  },
  "r141": {
   "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"
  },
  "r142": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "323",
   "URI": "http://asc.fasb.org/extlink&oid=66022249&loc=d3e33775-111570"
  },
  "r143": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=68048583&loc=d3e3636-108311"
  },
  "r144": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=68049868&loc=SL66093879-108312"
  },
  "r145": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1C",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=68049868&loc=SL66093883-108312"
  },
  "r146": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=68049868&loc=d3e3927-108312"
  },
  "r147": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=66092785&loc=d3e4492-108314"
  },
  "r148": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=66092785&loc=d3e4542-108314"
  },
  "r149": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "330",
   "URI": "http://asc.fasb.org/extlink&oid=66092785&loc=d3e4556-108314"
  },
  "r15": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r150": {
   "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"
  },
  "r151": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6388280&loc=d3e13770-109266"
  },
  "r152": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=77989000&loc=SL49117168-202975"
  },
  "r153": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=35741047&loc=d3e13816-109267"
  },
  "r154": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=35741047&loc=d3e13816-109267"
  },
  "r155": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "20",
   "Topic": "350",
   "URI": "http://asc.fasb.org/subtopic&trid=2144439"
  },
  "r156": {
   "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"
  },
  "r157": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=66006027&loc=d3e16265-109275"
  },
  "r158": {
   "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"
  },
  "r159": {
   "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"
  },
  "r16": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r160": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "30",
   "SubTopic": "40",
   "Topic": "350",
   "URI": "http://asc.fasb.org/extlink&oid=6389767&loc=d3e17916-109280"
  },
  "r161": {
   "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"
  },
  "r162": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=64802544&loc=d3e202-110218"
  },
  "r163": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=68055307&loc=d3e2443-110228"
  },
  "r164": {
   "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"
  },
  "r165": {
   "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"
  },
  "r166": {
   "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"
  },
  "r167": {
   "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"
  },
  "r168": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 5.CC)",
   "Topic": "360",
   "URI": "http://asc.fasb.org/extlink&oid=27011434&loc=d3e125687-122742"
  },
  "r169": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "440",
   "URI": "http://asc.fasb.org/topic&trid=2144648"
  },
  "r17": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(c)(2))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r170": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "450",
   "URI": "http://asc.fasb.org/topic&trid=2127136"
  },
  "r171": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=82913245&loc=d3e12069-110248"
  },
  "r172": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "((c)(2))",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r173": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r174": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r175": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r176": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(5)",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r177": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "460",
   "URI": "http://asc.fasb.org/extlink&oid=68068213&loc=d3e12565-110249"
  },
  "r178": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=6802200&loc=d3e1835-112601"
  },
  "r179": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "470",
   "URI": "http://asc.fasb.org/extlink&oid=6802200&loc=SL6230698-112601"
  },
  "r18": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(c)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r180": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "470",
   "URI": "http://asc.fasb.org/topic&trid=2208564"
  },
  "r181": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=84159872&loc=d3e21463-112644"
  },
  "r182": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=84159872&loc=d3e21475-112644"
  },
  "r183": {
   "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=27012166&loc=d3e187085-122770"
  },
  "r184": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405813&loc=d3e23239-112655"
  },
  "r185": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "30",
   "Topic": "505",
   "URI": "http://asc.fasb.org/extlink&oid=6405834&loc=d3e23315-112656"
  },
  "r186": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "50",
   "Topic": "505",
   "URI": "http://asc.fasb.org/subtopic&trid=2208855"
  },
  "r187": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "505",
   "URI": "http://asc.fasb.org/topic&trid=2208762"
  },
  "r188": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 13.A.3)",
   "Topic": "605",
   "URI": "http://asc.fasb.org/extlink&oid=65893310&loc=d3e214044-122780"
  },
  "r189": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 13.A.4(a).Q1)",
   "Topic": "605",
   "URI": "http://asc.fasb.org/extlink&oid=65893310&loc=d3e214044-122780"
  },
  "r19": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(3)(c)(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r190": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 13.B.Q1)",
   "Topic": "605",
   "URI": "http://asc.fasb.org/extlink&oid=65893310&loc=d3e214044-122780"
  },
  "r191": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "20",
   "Topic": "605",
   "URI": "http://asc.fasb.org/extlink&oid=68055036&loc=d3e47769-111627"
  },
  "r192": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "35",
   "Topic": "605",
   "URI": "http://asc.fasb.org/extlink&oid=68068069&loc=d3e57788-111642"
  },
  "r193": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "35",
   "Topic": "605",
   "URI": "http://asc.fasb.org/extlink&oid=68068069&loc=d3e57795-111642"
  },
  "r194": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "35",
   "Topic": "605",
   "URI": "http://asc.fasb.org/extlink&oid=68068069&loc=d3e57807-111642"
  },
  "r195": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "SubTopic": "35",
   "Topic": "605",
   "URI": "http://asc.fasb.org/subtopic&trid=2197326"
  },
  "r196": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=82913847&loc=SL49130545-203045"
  },
  "r197": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=96862333&loc=SL49130690-203046-203046"
  },
  "r198": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "91",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "606",
   "URI": "http://asc.fasb.org/extlink&oid=96862333&loc=SL49130690-203046-203046"
  },
  "r199": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "712",
   "URI": "http://asc.fasb.org/extlink&oid=6410138&loc=d3e79691-111665"
  },
  "r2": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765"
  },
  "r20": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r200": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=64852052&loc=d3e1703-114919"
  },
  "r201": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=64852052&loc=d3e1731-114919"
  },
  "r202": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r203": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(2)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r204": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(4)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r205": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)(6)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r206": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r207": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)(3)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r208": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r209": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(5)(ii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r21": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r210": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(5)(iv)(01)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r211": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(i)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r212": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(d)(ii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r213": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(f)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r214": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r215": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(2)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r216": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(h)(4)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r217": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(i)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r218": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(j)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r219": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(k)(1)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r22": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r220": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e1928-114920"
  },
  "r221": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(i)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e2446-114920"
  },
  "r222": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(c)(ii)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e2446-114920"
  },
  "r223": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(b)",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=82843861&loc=d3e2709-114920"
  },
  "r224": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "60",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=6414203&loc=d3e39716-114964"
  },
  "r225": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "70",
   "Topic": "715",
   "URI": "http://asc.fasb.org/extlink&oid=49170846&loc=d3e28014-114942"
  },
  "r226": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "715",
   "URI": "http://asc.fasb.org/topic&trid=2235017"
  },
  "r227": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "35",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=79507207&loc=d3e4534-113899"
  },
  "r228": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5047-113901"
  },
  "r229": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5047-113901"
  },
  "r23": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r230": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(3)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r231": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b),(f)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r232": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r233": {
   "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=96867065&loc=d3e5070-113901"
  },
  "r234": {
   "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=96867065&loc=d3e5070-113901"
  },
  "r235": {
   "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=96867065&loc=d3e5070-113901"
  },
  "r236": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r237": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)(iv)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r238": {
   "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=96867065&loc=d3e5070-113901"
  },
  "r239": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r24": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r240": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r241": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(d)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r242": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r243": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)(1)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r244": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(f)(2)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r245": {
   "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=96867065&loc=d3e5070-113901"
  },
  "r246": {
   "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=96867065&loc=d3e5070-113901"
  },
  "r247": {
   "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=96867065&loc=d3e5070-113901"
  },
  "r248": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(h)(1)(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r249": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r25": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r250": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=d3e5070-113901"
  },
  "r251": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96867065&loc=SL79508275-113901"
  },
  "r252": {
   "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=27013229&loc=d3e301413-122809"
  },
  "r253": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB Topic 14.F)",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=27013229&loc=d3e301413-122809"
  },
  "r254": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96864182&loc=d3e11149-113907"
  },
  "r255": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "20",
   "Topic": "718",
   "URI": "http://asc.fasb.org/extlink&oid=96864182&loc=d3e11178-113907"
  },
  "r256": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "718",
   "URI": "http://asc.fasb.org/topic&trid=2228938"
  },
  "r257": {
   "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"
  },
  "r258": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=96869850&loc=d3e28680-109314"
  },
  "r259": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=96869850&loc=d3e28680-109314"
  },
  "r26": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(4))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r260": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e32059-109318"
  },
  "r261": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e32123-109318"
  },
  "r262": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e32247-109318"
  },
  "r263": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84176650&loc=d3e32280-109318"
  },
  "r264": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32687-109319"
  },
  "r265": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32698-109319"
  },
  "r266": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32718-109319"
  },
  "r267": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "17",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32809-109319"
  },
  "r268": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32840-109319"
  },
  "r269": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r27": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r270": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b),(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r271": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r272": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32537-109319"
  },
  "r273": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32559-109319"
  },
  "r274": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32621-109319"
  },
  "r275": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32632-109319"
  },
  "r276": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r277": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a),(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r278": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r279": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "9",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=84230637&loc=d3e32639-109319"
  },
  "r28": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r280": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SAB TOPIC 6.I)",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=34349781&loc=d3e330036-122817"
  },
  "r281": {
   "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=34349781&loc=d3e330036-122817"
  },
  "r282": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "05",
   "SubTopic": "30",
   "Topic": "740",
   "URI": "http://asc.fasb.org/extlink&oid=65884525&loc=d3e40913-109327"
  },
  "r283": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "740",
   "URI": "http://asc.fasb.org/topic&trid=2144680"
  },
  "r284": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=96868048&loc=SL4568447-111683"
  },
  "r285": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "16",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=96868048&loc=SL4568740-111683"
  },
  "r286": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "19",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=96868048&loc=SL4569616-111683"
  },
  "r287": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)(2)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=84161450&loc=SL4573702-111684"
  },
  "r288": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)(1)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=84161450&loc=SL4573702-111684"
  },
  "r289": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c),(3)",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=84161450&loc=SL4573702-111684"
  },
  "r29": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r290": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4I",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=84234705&loc=SL4590271-111686"
  },
  "r291": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4J",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=84234705&loc=SL4591551-111686"
  },
  "r292": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4K",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "810",
   "URI": "http://asc.fasb.org/extlink&oid=84234705&loc=SL4591552-111686"
  },
  "r293": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "810",
   "URI": "http://asc.fasb.org/topic&trid=2197479"
  },
  "r294": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=66048111&loc=d3e19207-110258"
  },
  "r295": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(bbb)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=66048111&loc=d3e19207-110258"
  },
  "r296": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=66048111&loc=d3e19207-110258"
  },
  "r297": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "820",
   "URI": "http://asc.fasb.org/extlink&oid=66048111&loc=d3e19279-110258"
  },
  "r298": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "20",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=77997519&loc=d3e13531-108611"
  },
  "r299": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "21",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "825",
   "URI": "http://asc.fasb.org/extlink&oid=77997519&loc=d3e13537-108611"
  },
  "r3": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765"
  },
  "r30": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02(7))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r300": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "230",
   "Topic": "830",
   "URI": "http://asc.fasb.org/extlink&oid=98513438&loc=d3e33268-110906"
  },
  "r301": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=6450988&loc=d3e26243-108391"
  },
  "r302": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=64930785&loc=d3e28551-108399"
  },
  "r303": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=64930785&loc=d3e28555-108399"
  },
  "r304": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "30",
   "Topic": "835",
   "URI": "http://asc.fasb.org/extlink&oid=64930739&loc=d3e28878-108400"
  },
  "r305": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=84164451&loc=d3e36991-112694"
  },
  "r306": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(Note 1,3)",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=82846649&loc=d3e38371-112697"
  },
  "r307": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "40",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Subparagraph": "(Note 3)",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=82846649&loc=d3e38371-112697"
  },
  "r308": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "25",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=77902458&loc=d3e39927-112707"
  },
  "r309": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=77902758&loc=d3e41499-112717"
  },
  "r31": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r310": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Subparagraph": "(a)",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=77902758&loc=d3e41502-112717"
  },
  "r311": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "20",
   "Topic": "840",
   "URI": "http://asc.fasb.org/extlink&oid=77902758&loc=d3e41502-112717"
  },
  "r312": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "840",
   "URI": "http://asc.fasb.org/topic&trid=2208923"
  },
  "r313": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888421&loc=SL77919320-209978"
  },
  "r314": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "7",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "30",
   "Topic": "842",
   "URI": "http://asc.fasb.org/extlink&oid=77888421&loc=SL77919327-209978"
  },
  "r315": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39549-107864"
  },
  "r316": {
   "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"
  },
  "r317": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39622-107864"
  },
  "r318": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "5",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39678-107864"
  },
  "r319": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "6",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "850",
   "URI": "http://asc.fasb.org/extlink&oid=6457730&loc=d3e39691-107864"
  },
  "r32": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r320": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "850",
   "URI": "http://asc.fasb.org/topic&trid=2122745"
  },
  "r321": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "310",
   "Topic": "912",
   "URI": "http://asc.fasb.org/extlink&oid=68054760&loc=d3e55302-109406"
  },
  "r322": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "912",
   "URI": "http://asc.fasb.org/topic&trid=2145070"
  },
  "r323": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(1)(a))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r324": {
   "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=6876686&loc=d3e534808-122878"
  },
  "r325": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(13))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r326": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(15))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r327": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(16))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r328": {
   "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=6876686&loc=d3e534808-122878"
  },
  "r329": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(7))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r33": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r330": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.9-03(9))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6876686&loc=d3e534808-122878"
  },
  "r331": {
   "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=6876686&loc=d3e534808-122878"
  },
  "r332": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "225",
   "Subparagraph": "(SX 210.9-04(22))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6879574&loc=d3e536633-122882"
  },
  "r333": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "225",
   "Subparagraph": "(SX 210.9-04(23))",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6879574&loc=d3e536633-122882"
  },
  "r334": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "225",
   "Subparagraph": "(SX 210.9-04.9)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=6879574&loc=d3e536633-122882"
  },
  "r335": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "470",
   "Subparagraph": "(c)",
   "Topic": "942",
   "URI": "http://asc.fasb.org/extlink&oid=75038535&loc=d3e64711-112823"
  },
  "r336": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(16))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r337": {
   "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=6879938&loc=d3e572229-122910"
  },
  "r338": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(15))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r339": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(16))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r34": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r340": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(2))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r341": {
   "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=6879938&loc=d3e572229-122910"
  },
  "r342": {
   "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=6879938&loc=d3e572229-122910"
  },
  "r343": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.7-03(a)(5))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879938&loc=d3e572229-122910"
  },
  "r344": {
   "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=6879938&loc=d3e572229-122910"
  },
  "r345": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "225",
   "Subparagraph": "(SX 210.7-04(18))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879464&loc=d3e573970-122913"
  },
  "r346": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "225",
   "Subparagraph": "(SX 210.7-04(19))",
   "Topic": "944",
   "URI": "http://asc.fasb.org/extlink&oid=6879464&loc=d3e573970-122913"
  },
  "r347": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "210",
   "Subparagraph": "(SX 210.6-04(6))",
   "Topic": "946",
   "URI": "http://asc.fasb.org/extlink&oid=6488278&loc=d3e603758-122996"
  },
  "r348": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "310",
   "Subparagraph": "(b)",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=68075217&loc=SL9156395-115594"
  },
  "r349": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "740",
   "Topic": "954",
   "URI": "http://asc.fasb.org/extlink&oid=6491622&loc=d3e9504-115650"
  },
  "r35": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r350": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "360",
   "Subparagraph": "(SX 210.12-28)",
   "Topic": "970",
   "URI": "http://asc.fasb.org/extlink&oid=6590653&loc=d3e638233-123024"
  },
  "r351": {
   "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"
  },
  "r352": {
   "Name": "Regulation 12B",
   "Number": "240",
   "Publisher": "SEC",
   "Section": "12b",
   "Subsection": "1"
  },
  "r36": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r37": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r38": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r39": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19(b),22(b))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r4": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6676-107765"
  },
  "r40": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.19,20)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r41": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r42": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r43": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r44": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r45": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r46": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.26(c))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r47": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.29,30)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r48": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r49": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.3(c)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r5": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=82887183&loc=d3e6801-107765"
  },
  "r50": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r51": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.4)",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r52": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r53": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-02.6(a)(3))",
   "Topic": "210",
   "URI": "http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682"
  },
  "r54": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r55": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r56": {
   "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=6877327&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=6877327&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=6877327&loc=d3e13212-122682"
  },
  "r59": {
   "Name": "Accounting Standards Codification",
   "Publisher": "FASB",
   "Topic": "210",
   "URI": "http://asc.fasb.org/topic&trid=2122208"
  },
  "r6": {
   "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"
  },
  "r60": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(i)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=SL7669646-108580"
  },
  "r61": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(i-k)",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=SL7669646-108580"
  },
  "r62": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "10A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=SL7669646-108580"
  },
  "r63": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "11",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=d3e637-108580"
  },
  "r64": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "12",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=d3e640-108580"
  },
  "r65": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=d3e681-108580"
  },
  "r66": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=SL7669686-108580"
  },
  "r67": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1A",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=SL7669619-108580"
  },
  "r68": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1B",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84228862&loc=SL7669625-108580"
  },
  "r69": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "55",
   "SubTopic": "10",
   "Topic": "220",
   "URI": "http://asc.fasb.org/extlink&oid=84158357&loc=d3e1436-108581"
  },
  "r7": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r70": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(20))",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r71": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(21))",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r72": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(b)(2))",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r73": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03(b)(4))",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r74": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1(a),(d))",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r75": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1)",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r76": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.1,2)",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r77": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2(a),(d))",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r78": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.2)",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r79": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.4)",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r8": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r80": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "S99",
   "SubTopic": "10",
   "Subparagraph": "(SX 210.5-03.7)",
   "Topic": "225",
   "URI": "http://asc.fasb.org/extlink&oid=63488584&loc=d3e20235-122688"
  },
  "r81": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3213-108585"
  },
  "r82": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "13",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(c)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3213-108585"
  },
  "r83": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "14",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3255-108585"
  },
  "r84": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "15",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3291-108585"
  },
  "r85": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "24",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3521-108585"
  },
  "r86": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(e)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3536-108585"
  },
  "r87": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(f)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3536-108585"
  },
  "r88": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "25",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3536-108585"
  },
  "r89": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "26",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3574-108585"
  },
  "r9": {
   "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=6877327&loc=d3e13212-122682"
  },
  "r90": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(a)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3602-108585"
  },
  "r91": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Subparagraph": "(b)",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3602-108585"
  },
  "r92": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "28",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3602-108585"
  },
  "r93": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "45",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98514028&loc=d3e3044-108585"
  },
  "r94": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4273-108586"
  },
  "r95": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "2",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=d3e4297-108586"
  },
  "r96": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "8",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "230",
   "URI": "http://asc.fasb.org/extlink&oid=98513485&loc=SL98516268-108586"
  },
  "r97": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "1",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18726-107790"
  },
  "r98": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "3",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18780-107790"
  },
  "r99": {
   "Name": "Accounting Standards Codification",
   "Paragraph": "4",
   "Publisher": "FASB",
   "Section": "50",
   "SubTopic": "10",
   "Topic": "235",
   "URI": "http://asc.fasb.org/extlink&oid=84158767&loc=d3e18823-107790"
  }
 },
 "version": "2.0"
}
