XML 62 R49.htm IDEA: XBRL DOCUMENT v2.4.1.9
SCHEDULE II SCHEDULE OF VALUATION AND QUALIFYING ACCOUNTS (Details) (USD $)
In Thousands, unless otherwise specified
12 Months Ended
Jan. 31, 2015
Jan. 31, 2014
Jan. 31, 2013
Allowance for Bad Debt [Member]      
Movement In Valuation Allowances And Reserves [Rollforward]      
Balance at Beginning of Period $ 1,221us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
$ 1,474us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
$ 1,283us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
Charged to Statements of Income 86us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
72us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
324us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
Write-Offs, Net of Recoveries (39)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
(313)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
(131)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
Impact of Foreign Currency Translation (74)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
(12)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
(2)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
Balance at End of Period 1,194us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
1,221us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
1,474us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForTradeReceivablesMember
Allowance for Sales Returns [Member]      
Movement In Valuation Allowances And Reserves [Rollforward]      
Balance at Beginning of Period 1,229us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
1,036us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
1,184us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
Charged to Statements of Income 768us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
982us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
413us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
Write-Offs, Net of Recoveries (574)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
(729)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
(548)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
Impact of Foreign Currency Translation (93)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
(60)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
(13)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
Balance at End of Period 1,330us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
1,229us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
1,036us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForSalesReturnsMember
Total Allowance for Doubtful Accounts [Member]      
Movement In Valuation Allowances And Reserves [Rollforward]      
Balance at Beginning of Period 2,450us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
2,510us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
2,467us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Charged to Statements of Income 854us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
1,054us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
737us-gaap_ValuationAllowancesAndReservesChargedToCostAndExpense
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Write-Offs, Net of Recoveries (613)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
(1,042)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
(679)us-gaap_ValuationAllowancesAndReservesDeductions
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Impact of Foreign Currency Translation (167)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
(72)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
(15)us-gaap_ValuationAllowancesAndReservesAdjustments
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
Balance at End of Period $ 2,524us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
$ 2,450us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember
$ 2,510us-gaap_ValuationAllowancesAndReservesBalance
/ us-gaap_ValuationAllowancesAndReservesTypeAxis
= us-gaap_AllowanceForDoubtfulAccountsMember