XML 30 R61.htm IDEA: XBRL DOCUMENT v2.4.1.9
Stock-Based Compensation (Details) (USD $)
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Stock-Based Compensation      
Stock-based compensation expense $ 4,800,000us-gaap_AllocatedShareBasedCompensationExpense $ 4,000,000us-gaap_AllocatedShareBasedCompensationExpense $ 2,800,000us-gaap_AllocatedShareBasedCompensationExpense
Income tax benefit 1,800,000us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense 1,500,000us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense 1,000,000us-gaap_EmployeeServiceShareBasedCompensationTaxBenefitFromCompensationExpense
Shares      
Balance at beginning of year (in shares) 858,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber    
Balance at end of year (in shares) 910,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber 858,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber  
Weighted-Average Exercise Price      
Balance at beginning of year (in dollars per share) $ 12.24us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice $ 11.59us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice  
Balance at end of year (in dollars per share) $ 12.95us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice $ 12.24us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice $ 11.59us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
Stock Options      
Shares      
Balance at beginning of year (in shares) 858,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
1,143,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
1,056,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Granted (in shares) 156,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
156,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
190,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Exercised (in shares) (104,000)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
(440,000)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
(103,000)us-gaap_StockIssuedDuringPeriodSharesStockOptionsExercised
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Forfeited (in shares)   (13.87)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
 
Balance at end of year (in shares)   858,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
1,143,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Options exercisable at end of year (in shares) 587,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
528,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
810,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Weighted-Average Exercise Price      
Balance at beginning of year (in dollars per share) $ 12.24us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
$ 11.59us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
$ 10.84us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Granted (in dollars per share) $ 16.15us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
$ 13.86us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
$ 11.19us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Exercised (in dollars per share) $ 11.87us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
$ 11.10us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
$ 3.20us-gaap_ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Balance at end of year (in dollars per share)   $ 12.24us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
$ 11.59us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Other information      
Intrinsic value of options exercised 400,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
3,000,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
800,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
Weighted-average remaining contractual term of options exercisable 5 years    
Aggregate intrinsic value of options exercisable 2,900,000us-gaap_SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
   
Number of options that are vested and expected to vest (in shares) 900,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
   
Weighted average exercise price of options that are vested and expected to vest (in dollars per share) $ 12.95us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember
   
Weighted-average remaining contractual term of options that are vested and expected to vest 6 years 2 months 12 days    
Aggregate intrinsic value of options that are vested and expected to vest $ 3,800,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
/ us-gaap_AwardTypeAxis
= fix_EmployeeAndNonemployeeStockOptionMember