Quarterly report pursuant to Section 13 or 15(d)

Note 4 - Capital Stock, Stock Plans and Stock Based Compensation (Details) - Company Stock Plan

v2.4.1.9
Note 4 - Capital Stock, Stock Plans and Stock Based Compensation (Details) - Company Stock Plan (USD $)
3 Months Ended
Mar. 31, 2015
Mar. 31, 2014
Company Stock Plan [Abstract]    
Options outstanding, share 239,023us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber 362,800us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
Options outstanding, weighted average exercise price $ 7.81us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice $ 9.53us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
Granted, Shares 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
Granted, Weighted Average Exercise Price $ 0us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice $ 0us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
Exercised, shares (1,257)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised 0us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
Exercised, weighted average exercise price $ 2.79us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice $ 0us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
Exercised, aggregate intrinsic value $ 2,043us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue $ 0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
Forfeited/expired, shares (15,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod (22,000)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
Forfeited/expired, weighted average exercise price $ 7.10us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice $ 8.17us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
Options outstanding end of period, shares 222,766us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber [1] 340,800us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber [1]
Options outstanding end of period, Weighted Average Exercise Price $ 7.89us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice [1] $ 9.62us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice [1]
Options outstanding end of period, Weighted Average Remaining Contractual Term 5 years [1] 2 years 255 days [1]
Options outstanding end of period, Aggregate Intrinsic Value 22,616us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue [1] 47,790us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue [1]
Exercisable, shares 167,766us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber [1] 334,800us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber [1]
Exercisable, weighted average exercise price $ 8.84us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice [1] $ 9.73us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice [1]
Exercisable, weighted average remaining contractual term 4 years 328 days [1] 2 years 219 days [1]
Exercisable, aggregate intrinsic value 22,616us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 [1] 37,710us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1 [1]
Vested/expect to be vested, shares 213,966us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber 340,800us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
Vested/expect to be vested, weighted average exercise price $ 8.01us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice $ 9.62us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
Vested/expect to be vested, weighted average remaining contractual term 5 years 2 years 255 days
Vested/expect to be vested, aggregate intrinsic value $ 22,616us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue $ 47,790us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
[1] Options with exercise prices ranging from $2.79 to $14.75