XML 32 R20.htm IDEA: XBRL DOCUMENT
v3.20.2

Organization and Summary of Significant Accounting Policies - Additional Information (Details) | 6 Months Ended | 12 Months Ended
--- | --- | ---
Jun. 30, 2020 USD ($) segment tug vessel ferry ship towboat | Dec. 31, 2019 USD ($) segment
Significant Accounting Policies [Line Items] |  |
Number of operating segments | segment | 2 | 3
Number of corporate non-operating segments | segment | 1 | 1
Number of harbor tug | 2 |
Number of regional class research vessels | vessel | 3 |
Number of ferries | ferry | 3 |
Number of towing, salvage and rescue vessels | ship | 5 |
Number of OSVs | vessel | 2 |
Number of harbor tug | 8 |
Number of towboats | towboat | 2 |
Number of ice breaker tug | 1 |
Prepaid contract costs | $ | $ 0 | $ 0
Other (income) expense, net |  |
Significant Accounting Policies [Line Items] |  |
Gain on settlement of contract dispute for project completed in 2015 | $ | $ 10,000,000.0 |
Minimum |  |
Significant Accounting Policies [Line Items] |  |
Property, plant and equipment, useful life | 3 years |
Maximum |  |
Significant Accounting Policies [Line Items] |  |
Property, plant and equipment, useful life | 25 years |

X
- Definition Construction in process number of ferries. + References No definition available. + Details
Name: | gifi_ConstructionInProcessNumberOfFerries
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Construction in progress number of harbor tug. + References No definition available. + Details
Name: | gifi_ConstructionInProgressNumberOfHarborTug
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Construction in progress number of regional class research vessels. + References No definition available. + Details
Name: | gifi_ConstructionInProgressNumberOfRegionalClassResearchVessels
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Construction in progress number of towing salvage and rescue ship vessels. + References No definition available. + Details
Name: | gifi_ConstructionInProgressNumberOfTowingSalvageAndRescueShipVessels
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | instant

X
- Definition Gain on settlement of contract dispute. + References No definition available. + Details
Name: | gifi_GainOnSettlementOfContractDispute
Namespace Prefix: | gifi_
Data Type: | xbrli:monetaryItemType
Balance Type: | credit
Period Type: | duration

X
- Definition Number of corporate non-operating segments. + References No definition available. + Details
Name: | gifi_NumberOfCorporateNonOperatingSegments
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of harbor tug. + References No definition available. + Details
Name: | gifi_NumberOfHarborTug
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of ice breaker tug. + References No definition available. + Details
Name: | gifi_NumberOfIceBreakerTug
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of OSVs. + References No definition available. + Details
Name: | gifi_NumberOfOSVs
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Number of towboats. + References No definition available. + Details
Name: | gifi_NumberOfTowboats
Namespace Prefix: | gifi_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition Significant Accounting Policies [Line Items] + References No definition available. + Details
Name: | gifi_SignificantAccountingPoliciesLineItems
Namespace Prefix: | gifi_
Data Type: | xbrli:stringItemType
Balance Type: | na
Period Type: | duration

X
- Definition Amount of deferred costs for long-term contracts and programs. Includes, but is not limited to, initial tooling costs and deferred production costs. + References Reference 1: http://fasb.org/us-gaap/role/ref/legacyRef -Publisher FASB -Name Accounting Standards Codification -Topic 210 -SubTopic 10 -Section S99 -Paragraph 1 -Subparagraph (SX 210.5-02(6)(d)(i)) -URI http://asc.fasb.org/extlink&oid=6877327&loc=d3e13212-122682 + Details
Name: | us-gaap_AmountOfDeferredCostsRelatedToLongTermContracts
Namespace Prefix: | us-gaap_
Data Type: | xbrli:monetaryItemType
Balance Type: | debit
Period Type: | instant

X
- Definition Number of operating segments. An operating segment is a component of an enterprise: (a) that engages in business activities from which it may earn revenues and incur expenses (including revenues and expenses relating to transactions with other components of the same enterprise), (b) whose operating results are regularly reviewed by the enterprise's chief operating decision maker to make decisions about resources to be allocated to the segment and assess its performance, and (c) for which discrete financial information is available. An operating segment may engage in business activities for which it has yet to earn revenues, for example, start-up operations may be operating segments before earning revenues. + References No definition available. + Details
Name: | us-gaap_NumberOfOperatingSegments
Namespace Prefix: | us-gaap_
Data Type: | xbrli:integerItemType
Balance Type: | na
Period Type: | duration

X
- Definition 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. + References No definition available. + Details
Name: | us-gaap_PropertyPlantAndEquipmentUsefulLife
Namespace Prefix: | us-gaap_
Data Type: | xbrli:durationItemType
Balance Type: | na
Period Type: | duration

X
- Details
Name: | us-gaap_IncomeStatementLocationAxis=us-gaap_OtherOperatingIncomeExpenseMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MinimumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |

X
- Details
Name: | srt_RangeAxis=srt_MaximumMember
Namespace Prefix: |
Data Type: | na
Balance Type: |
Period Type: |