XML 64 R5.htm IDEA: XBRL DOCUMENT v2.4.1.9
CONSOLIDATED STATEMENTS OF STOCKHOLDERS' EQUITY (USD $)
In Thousands, unless otherwise specified
Common Class A [Member]
Common Class B [Member]
Additional Paid-in Capital [Member]
Treasury Stock [Member]
Accumulated Deficit [Member]
Accumulated Other Comprehensive Loss [Member]
Total
Balance at Jan. 31, 2012 $ 14us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
$ 4us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
$ 148,993us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
$ (27,968)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
$ (48,974)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
$ (10,054)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
$ 62,015us-gaap_StockholdersEquity
Balance (in shares) at Jan. 31, 2012 14,146us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
3,537us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  (1,804)us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Increase (Decrease) in Stockholders' Equity [Roll Forward]              
Net income 0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
6,639us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
6,639us-gaap_NetIncomeLoss
Foreign currency translation adjustments 0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
2,018us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
2,018us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
Stock award exercises 0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(1,322)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
985us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(138)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(475)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
Stock award exercises (in shares) 1us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  63us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Stock-based compensation income tax benefits (deficiencies) 0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(312)us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(312)us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
Stock compensation expense 0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
4,608us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
4,608us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
Dividends declared 0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(8,677)us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(8,677)us-gaap_DividendsCommonStockCash
Dividends paid in stock 0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
799us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(177)us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
622us-gaap_StockIssuedDuringPeriodValueStockDividend
Dividends paid in stock (in shares) 0us-gaap_StockDividendsShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockDividendsShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  50us-gaap_StockDividendsShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Restricted stock 0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(2,190)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
2,621us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(1,141)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(710)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
Restricted stock (in shares) 1us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  166us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Repurchase of common stock 0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(7,530)us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(7,530)us-gaap_TreasuryStockValueAcquiredCostMethod
Repurchase of common stock (in shares) 0us-gaap_TreasuryStockSharesAcquired
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_TreasuryStockSharesAcquired
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  (572)us-gaap_TreasuryStockSharesAcquired
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Proceeds from stock issuance, net of costs             0us-gaap_ProceedsFromIssuanceOfCommonStock
Balance at Jan. 31, 2013 14us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
4us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
149,777us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(31,093)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(52,468)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
(8,036)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
58,198us-gaap_StockholdersEquity
Balance (in shares) at Jan. 31, 2013 14,148us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
3,537us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  (2,097)us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Increase (Decrease) in Stockholders' Equity [Roll Forward]              
Net income 0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
6,386us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
6,386us-gaap_NetIncomeLoss
Foreign currency translation adjustments 0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
1,078us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
1,078us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
Stock award exercises 0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(2,023)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
1,473us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(160)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(710)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
Stock award exercises (in shares) 2us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  91us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Stock-based compensation income tax benefits (deficiencies) 0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
52us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
52us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
Stock compensation expense 0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
4,680us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
4,680us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
Dividends declared 0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(4,362)us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(4,362)us-gaap_DividendsCommonStockCash
Dividends paid in stock 0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
172us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(27)us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueStockDividend
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
145us-gaap_StockIssuedDuringPeriodValueStockDividend
Dividends paid in stock (in shares) 0us-gaap_StockDividendsShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockDividendsShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  10us-gaap_StockDividendsShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Restricted stock 0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(1,649)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
1,914us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(841)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(576)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
Restricted stock (in shares) 0us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  118us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Repurchase of common stock 0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(686)us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_TreasuryStockValueAcquiredCostMethod
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(686)us-gaap_TreasuryStockValueAcquiredCostMethod
Repurchase of common stock (in shares) 0us-gaap_TreasuryStockSharesAcquired
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_TreasuryStockSharesAcquired
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  (52)us-gaap_TreasuryStockSharesAcquired
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Proceeds from stock issuance, net of costs             0us-gaap_ProceedsFromIssuanceOfCommonStock
Balance at Jan. 31, 2014 14us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
4us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
150,837us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(28,220)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(51,472)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
(6,958)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
64,205us-gaap_StockholdersEquity
Balance (in shares) at Jan. 31, 2014 14,150us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
3,537us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  (1,930)us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Increase (Decrease) in Stockholders' Equity [Roll Forward]              
Net income 0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
12,946us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_NetIncomeLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
12,946us-gaap_NetIncomeLoss
Foreign currency translation adjustments 0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
(460)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(460)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationAdjustmentNetOfTaxPortionAttributableToParent
Stock award exercises 0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(5,188)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
3,749us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(138)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(1,577)us-gaap_StockIssuedDuringPeriodValueShareBasedCompensation
Stock award exercises (in shares) 1us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  199us-gaap_StockIssuedDuringPeriodSharesShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Stock-based compensation income tax benefits (deficiencies) 0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(15)us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(15)us-gaap_AdjustmentToAdditionalPaidInCapitalIncomeTaxEffectFromShareBasedCompensationNet
Stock compensation expense 0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
4,993us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
4,993us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
Dividends declared 0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(4,452)us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_DividendsCommonStockCash
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(4,452)us-gaap_DividendsCommonStockCash
Dividends paid in stock             0us-gaap_StockIssuedDuringPeriodValueStockDividend
Restricted stock 0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
(2,125)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
1,494us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
(349)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(980)us-gaap_RestrictedStockValueSharesIssuedNetOfTaxWithholdings
Restricted stock (in shares) 1us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  121us-gaap_RestrictedStockSharesIssuedNetOfSharesForTaxWithholdings
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Proceeds from stock issuance, net of costs 2us-gaap_ProceedsFromIssuanceOfCommonStock
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0us-gaap_ProceedsFromIssuanceOfCommonStock
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
37,044us-gaap_ProceedsFromIssuanceOfCommonStock
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_ProceedsFromIssuanceOfCommonStock
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
0us-gaap_ProceedsFromIssuanceOfCommonStock
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_ProceedsFromIssuanceOfCommonStock
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
37,046us-gaap_ProceedsFromIssuanceOfCommonStock
Proceeds from stock issuance, net of costs (in shares) 2,000qada_ProceedsFromStockIssuanceNetOfCostsInShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
0qada_ProceedsFromStockIssuanceNetOfCostsInShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  0qada_ProceedsFromStockIssuanceNetOfCostsInShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
     
Balance at Jan. 31, 2015 $ 16us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
$ 4us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
$ 185,546us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
$ (22,977)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember
$ (43,465)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
$ (7,418)us-gaap_StockholdersEquity
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
$ 111,706us-gaap_StockholdersEquity
Balance (in shares) at Jan. 31, 2015 16,152us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassAMember
3,537us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonClassBMember
  (1,610)us-gaap_CommonStockSharesOutstanding
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_TreasuryStockMember