XML 29 R67.htm IDEA: XBRL DOCUMENT v2.4.1.9
Quarterly Financial Information - Summary of Condensed Consolidated Statements of Operations (Detail) (USD $)
In Thousands, except Per Share data, unless otherwise specified
3 Months Ended 12 Months Ended
Dec. 31, 2014
Sep. 30, 2014
Jun. 30, 2014
Mar. 31, 2014
Dec. 31, 2013
Sep. 30, 2013
Jun. 30, 2013
Mar. 31, 2013
Dec. 31, 2014
Dec. 31, 2013
Income Statement [Abstract]                    
Revenue $ 25,595us-gaap_Revenues $ 24,535us-gaap_Revenues $ 23,055us-gaap_Revenues $ 22,731us-gaap_Revenues $ 25,829us-gaap_Revenues $ 23,572us-gaap_Revenues $ 21,837us-gaap_Revenues $ 20,870us-gaap_Revenues $ 95,916us-gaap_Revenues $ 92,108us-gaap_Revenues
Gross profit 4,764us-gaap_GrossProfit 3,963us-gaap_GrossProfit 4,265us-gaap_GrossProfit 3,535us-gaap_GrossProfit 4,516us-gaap_GrossProfit 3,369us-gaap_GrossProfit 3,793us-gaap_GrossProfit 3,347us-gaap_GrossProfit 16,527us-gaap_GrossProfit 15,025us-gaap_GrossProfit
Income (loss) from operations 1,288us-gaap_OperatingIncomeLoss 723us-gaap_OperatingIncomeLoss 670us-gaap_OperatingIncomeLoss (197)us-gaap_OperatingIncomeLoss 25us-gaap_OperatingIncomeLoss (1,395)us-gaap_OperatingIncomeLoss (786)us-gaap_OperatingIncomeLoss (947)us-gaap_OperatingIncomeLoss 2,484us-gaap_OperatingIncomeLoss (3,103)us-gaap_OperatingIncomeLoss
Net income (loss) $ 1,396us-gaap_NetIncomeLoss $ 691us-gaap_NetIncomeLoss $ 651us-gaap_NetIncomeLoss $ (393)us-gaap_NetIncomeLoss $ (23)us-gaap_NetIncomeLoss $ (3,567)us-gaap_NetIncomeLoss $ (805)us-gaap_NetIncomeLoss $ (862)us-gaap_NetIncomeLoss $ 2,345us-gaap_NetIncomeLoss $ (5,257)us-gaap_NetIncomeLoss
Basic income (loss) per share $ 0.12us-gaap_EarningsPerShareBasic $ 0.06us-gaap_EarningsPerShareBasic $ 0.06us-gaap_EarningsPerShareBasic $ (0.03)us-gaap_EarningsPerShareBasic $ 0.00us-gaap_EarningsPerShareBasic $ (0.32)us-gaap_EarningsPerShareBasic $ (0.07)us-gaap_EarningsPerShareBasic $ (0.08)us-gaap_EarningsPerShareBasic $ 0.20us-gaap_EarningsPerShareBasic $ (0.47)us-gaap_EarningsPerShareBasic
Diluted income (loss) per share $ 0.12us-gaap_EarningsPerShareDiluted $ 0.06us-gaap_EarningsPerShareDiluted $ 0.06us-gaap_EarningsPerShareDiluted $ (0.03)us-gaap_EarningsPerShareDiluted $ 0.00us-gaap_EarningsPerShareDiluted $ (0.32)us-gaap_EarningsPerShareDiluted $ (0.07)us-gaap_EarningsPerShareDiluted $ (0.08)us-gaap_EarningsPerShareDiluted $ 0.20us-gaap_EarningsPerShareDiluted $ (0.47)us-gaap_EarningsPerShareDiluted
Shares used in calculation of income (loss) per share:                    
Basic 11,735us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,655us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,510us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,390us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,246us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,194us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,149us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,107us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,574us-gaap_WeightedAverageNumberOfSharesOutstandingBasic 11,174us-gaap_WeightedAverageNumberOfSharesOutstandingBasic
Diluted 11,945us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,832us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,715us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,390us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,246us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,194us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,149us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,107us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,788us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding 11,174us-gaap_WeightedAverageNumberOfDilutedSharesOutstanding