| Note 5 - Goodwill and Other Intangible Assets (Details) - Other Intangible Assets (USD $) In Thousands, unless otherwise specified | 12 Months Ended | |
|---|---|---|
| Dec. 31, 2014 | Dec. 31, 2013 | |
| Finite-Lived Intangible Assets [Line Items] | ||
| Gross Carrying Amount | $ 5,312us-gaap_FiniteLivedIntangibleAssetsGross | $ 5,318us-gaap_FiniteLivedIntangibleAssetsGross | 
| Accumulated Amortization | (2,877)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization | (2,338)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization | 
| Net Carrying Amount | 2,435us-gaap_IntangibleAssetsNetExcludingGoodwill | 2,980us-gaap_IntangibleAssetsNetExcludingGoodwill | 
| Patents [Member] | Minimum [Member] | ||
| Finite-Lived Intangible Assets [Line Items] | ||
| Useful Lives (Years) | 8 years | |
| Patents [Member] | Maximum [Member] | ||
| Finite-Lived Intangible Assets [Line Items] | ||
| Useful Lives (Years) | 18 years | |
| Patents [Member] | ||
| Finite-Lived Intangible Assets [Line Items] | ||
| Gross Carrying Amount | 512us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_PatentsMember | 514us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_PatentsMember | 
| Accumulated Amortization | (168)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_PatentsMember | (155)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_PatentsMember | 
| Net Carrying Amount | 344us-gaap_IntangibleAssetsNetExcludingGoodwill / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_PatentsMember | 359us-gaap_IntangibleAssetsNetExcludingGoodwill / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_PatentsMember | 
| Computer Software, Intangible Asset [Member] | ||
| Finite-Lived Intangible Assets [Line Items] | ||
| Useful Lives (Years) | 3 years | |
| Gross Carrying Amount | 375us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_ComputerSoftwareIntangibleAssetMember | 379us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_ComputerSoftwareIntangibleAssetMember | 
| Accumulated Amortization | (319)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_ComputerSoftwareIntangibleAssetMember | (258)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_ComputerSoftwareIntangibleAssetMember | 
| Net Carrying Amount | 56us-gaap_IntangibleAssetsNetExcludingGoodwill / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_ComputerSoftwareIntangibleAssetMember | 121us-gaap_IntangibleAssetsNetExcludingGoodwill / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_ComputerSoftwareIntangibleAssetMember | 
| Noncompete Agreements [Member] | ||
| Finite-Lived Intangible Assets [Line Items] | ||
| Useful Lives (Years) | 1 year 73 days | |
| Gross Carrying Amount | 265us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_NoncompeteAgreementsMember | 265us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_NoncompeteAgreementsMember | 
| Accumulated Amortization | (265)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_NoncompeteAgreementsMember | (174)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_NoncompeteAgreementsMember | 
| Net Carrying Amount | 91us-gaap_IntangibleAssetsNetExcludingGoodwill / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_NoncompeteAgreementsMember | |
| Customer Contracts [Member] | ||
| Finite-Lived Intangible Assets [Line Items] | ||
| Useful Lives (Years) | 6 months | |
| Gross Carrying Amount | 790us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerContractsMember | 790us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerContractsMember | 
| Accumulated Amortization | (790)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerContractsMember | (790)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerContractsMember | 
| Customer Relationships [Member] | ||
| Finite-Lived Intangible Assets [Line Items] | ||
| Useful Lives (Years) | 12 years | |
| Gross Carrying Amount | 3,370us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerRelationshipsMember | 3,370us-gaap_FiniteLivedIntangibleAssetsGross / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerRelationshipsMember | 
| Accumulated Amortization | (1,335)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerRelationshipsMember | (961)us-gaap_FiniteLivedIntangibleAssetsAccumulatedAmortization / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerRelationshipsMember | 
| Net Carrying Amount | $ 2,035us-gaap_IntangibleAssetsNetExcludingGoodwill / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerRelationshipsMember | $ 2,409us-gaap_IntangibleAssetsNetExcludingGoodwill / us-gaap_FiniteLivedIntangibleAssetsByMajorClassAxis = us-gaap_CustomerRelationshipsMember | 
| X | ||||||||||
| 
- Definition Accumulated amount of amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life. Reference 1: http://www.xbrl.org/2003/role/presentationRef 
 | 
| X | ||||||||||
| 
- Definition Amount before amortization of assets, excluding financial assets and goodwill, lacking physical substance with a finite life. Reference 1: http://www.xbrl.org/2003/role/presentationRef 
 | 
| X | ||||||||||
| 
- Details 
 | 
| X | ||||||||||
| 
- Definition Useful life of finite-lived intangible assets, in 'PnYnMnDTnHnMnS' format, for example, 'P1Y5M13D' represents the reported fact of one year, five months, and thirteen days. No definition available. 
 | 
| X | ||||||||||
| 
- Definition Sum of the carrying amounts of all intangible assets, excluding goodwill, as of the balance sheet date, net of accumulated amortization and impairment charges. Reference 1: http://www.xbrl.org/2003/role/presentationRef 
 | 
| X | ||||||||||
| 
- Details 
 | 
| X | ||||||||||
| 
- Details 
 | 
| X | ||||||||||
| 
- Details 
 | 
| X | ||||||||||
| 
- Details 
 | 
| X | ||||||||||
| 
- Details 
 |