XML 45 R6.htm IDEA: XBRL DOCUMENT v2.4.1.9
CONSOLIDATED STATEMENT OF EQUITY (USD $)
In Thousands, except Share data, unless otherwise specified
Total
Total
Common Stock
Additional Paid-in Capital
Accumulated Other Comprehensive Income (Loss)
Accumulated Deficit
Noncontrolling Interest in Subsidiary
Beginning Balance at Dec. 31, 2011 $ 150,879us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest $ 150,343us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
$ 276us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
$ 172,935us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
$ 0us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
$ (22,868)us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
$ 536us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Beginning Balance (shares) at Dec. 31, 2011     27,649,000us-gaap_SharesIssued
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Increase (Decrease) in Stockholders' Equity [Roll Forward]              
Issuance of common stock pursuant to the employee stock purchase plan (shares)     41,000us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of common stock pursuant to the employee stock purchase plan 290us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan 290us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
1us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
289us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Issuance of restricted common stock, net of cancellations (shares)     483,000us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of restricted common stock, net of cancellations 5us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures 5us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
5us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Foreign currency translation adjustments, shares     0us-gaap_StockholdersEquityOtherShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Foreign currency translation adjustments (97)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax (97)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(97)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Surrender of restricted common stock for income tax purposes (shares)     (211,000)xoxo_SharesSurrenderedByEmployeesShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Surrender of restricted common stock for income tax purposes (1,947)xoxo_SharesSurrenderedByEmployeesToPayTaxes (1,947)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
(2)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
(1,945)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Issuance of common stock in connection with the exercise of vested stock options, shares     0us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of common stock in connection with the exercise of vested stock options 1us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised 1us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
1us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Repurchase of common stock (shares)     (2,109,000)us-gaap_StockRepurchasedAndRetiredDuringPeriodShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Repurchase of common stock and extinguishment (18,936)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue (18,936)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
(21)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
(13,182)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(5,733)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Stock-based compensation, shares     0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherShareIncreaseDecrease
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Stock-based compensation 6,388us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue 6,388us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
6,388us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Excess tax benefits from stock-based awards (386)us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation (386)us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
(386)us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Acquisition of noncontrolling interest in subsidiary, shares     0us-gaap_BusinessAcquisitionEquityInterestsIssuedOrIssuableNumberOfSharesIssued
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Acquisition of noncontrolling interest in subsidiary 0xoxo_AcquisitionOfNoncontrollingInterestsInSubsidiaries 471xoxo_AcquisitionOfNoncontrollingInterestsInSubsidiaries
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0xoxo_AcquisitionOfNoncontrollingInterestsInSubsidiaries
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
471xoxo_AcquisitionOfNoncontrollingInterestsInSubsidiaries
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0xoxo_AcquisitionOfNoncontrollingInterestsInSubsidiaries
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0xoxo_AcquisitionOfNoncontrollingInterestsInSubsidiaries
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
(471)xoxo_AcquisitionOfNoncontrollingInterestsInSubsidiaries
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Deconsolidation of subsidiary (339)us-gaap_NoncontrollingInterestDecreaseFromDeconsolidation (339)us-gaap_NoncontrollingInterestDecreaseFromDeconsolidation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_NoncontrollingInterestDecreaseFromDeconsolidation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
(500)us-gaap_NoncontrollingInterestDecreaseFromDeconsolidation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_NoncontrollingInterestDecreaseFromDeconsolidation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
161us-gaap_NoncontrollingInterestDecreaseFromDeconsolidation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_NoncontrollingInterestDecreaseFromDeconsolidation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Net income 8,649us-gaap_ProfitLoss 8,714us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
8,714us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
(65)us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Ending Balance at Dec. 31, 2012 144,507us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest 144,507us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
259us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
164,071us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(97)us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(19,726)us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Ending Balance (shares) at Dec. 31, 2012     25,853,000us-gaap_SharesIssued
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Increase (Decrease) in Stockholders' Equity [Roll Forward]              
Issuance of common stock pursuant to the employee stock purchase plan (shares)     39,000us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of common stock pursuant to the employee stock purchase plan 298us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan 298us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
298us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Issuance of restricted common stock, net of cancellations (shares)     1,275,000us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of restricted common stock, net of cancellations 13us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures 13us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
13us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Foreign currency translation adjustments, shares     0us-gaap_StockholdersEquityOtherShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Foreign currency translation adjustments (107)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax (107)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(107)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Surrender of restricted common stock for income tax purposes (shares)     (187,000)xoxo_SharesSurrenderedByEmployeesShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Surrender of restricted common stock for income tax purposes (1,782)xoxo_SharesSurrenderedByEmployeesToPayTaxes (1,782)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
(2)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
(1,780)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Issuance of common stock in connection with the exercise of vested stock options, shares 69,000us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised   69,000us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of common stock in connection with the exercise of vested stock options 197us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised 197us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
197us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Stock-based compensation, shares     0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherShareIncreaseDecrease
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Stock-based compensation 6,665us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue 6,665us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
6,665us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Excess tax benefits from stock-based awards 305us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation 305us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
305us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Net income 5,794us-gaap_ProfitLoss 5,794us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
5,794us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Ending Balance at Dec. 31, 2013 155,890us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest 155,890us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
270us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
169,756us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(204)us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(13,932)us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Ending Balance (shares) at Dec. 31, 2013 27,049,095us-gaap_SharesIssued   27,049,000us-gaap_SharesIssued
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Increase (Decrease) in Stockholders' Equity [Roll Forward]              
Issuance of common stock pursuant to the employee stock purchase plan (shares)     38,000us-gaap_StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of common stock pursuant to the employee stock purchase plan 374us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan 374us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
374us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Issuance of restricted common stock, net of cancellations (shares)     (82,000)us-gaap_StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of restricted common stock, net of cancellations 0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures 0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueRestrictedStockAwardNetOfForfeitures
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Foreign currency translation adjustments, shares     0us-gaap_StockholdersEquityOtherShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Foreign currency translation adjustments (64)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax (64)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
(64)us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_OtherComprehensiveIncomeForeignCurrencyTransactionAndTranslationGainLossArisingDuringPeriodNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Other Comprehensive Income (Loss), Foreign Currency Transaction and Translation Reclassification Adjustment from AOCI, Realized upon Sale or Liquidation, Net of Tax 303us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationReclassificationAdjustmentFromAOCIRealizedUponSaleOrLiquidationNetOfTax 303us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationReclassificationAdjustmentFromAOCIRealizedUponSaleOrLiquidationNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
    303us-gaap_OtherComprehensiveIncomeLossForeignCurrencyTransactionAndTranslationReclassificationAdjustmentFromAOCIRealizedUponSaleOrLiquidationNetOfTax
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
   
Surrender of restricted common stock for income tax purposes (shares)     (384,000)xoxo_SharesSurrenderedByEmployeesShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Surrender of restricted common stock for income tax purposes (4,796)xoxo_SharesSurrenderedByEmployeesToPayTaxes (4,796)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
(3)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
(4,793)xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0xoxo_SharesSurrenderedByEmployeesToPayTaxes
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Issuance of common stock in connection with the exercise of vested stock options, shares 131,000us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised   131,000us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Issuance of common stock in connection with the exercise of vested stock options 523us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised 523us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
1us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
522us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockIssuedDuringPeriodValueStockOptionsExercised
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Repurchase of common stock (shares)     (121,000)us-gaap_StockRepurchasedAndRetiredDuringPeriodShares
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Repurchase of common stock and extinguishment (1,628)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue (1,628)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
(1)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
(770)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
(857)us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_StockRepurchasedAndRetiredDuringPeriodValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Stock-based compensation, shares     0us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOtherShareIncreaseDecrease
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
       
Stock-based compensation 5,602us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue 5,602us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
5,602us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Excess tax benefits from stock-based awards 1,260us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation 1,260us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
1,260us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_AdjustmentsToAdditionalPaidInCapitalTaxEffectFromShareBasedCompensation
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Net income 462us-gaap_ProfitLoss 462us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
      462us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
0us-gaap_ProfitLoss
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Ending Balance at Dec. 31, 2014 $ 157,926us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest $ 157,926us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_ParentMember
$ 267us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember
$ 171,951us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AdditionalPaidInCapitalMember
$ 35us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_AccumulatedOtherComprehensiveIncomeMember
$ (14,327)us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_RetainedEarningsMember
$ 0us-gaap_StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_NoncontrollingInterestMember
Ending Balance (shares) at Dec. 31, 2014 26,630,507us-gaap_SharesIssued   26,631,000us-gaap_SharesIssued
/ us-gaap_StatementEquityComponentsAxis
= us-gaap_CommonStockMember