Stock-Based Compensation (Details - Options)
$ / shares in Units, $ in Thousands
9 Months Ended
Sep. 30, 2016
USD ($)
$ / shares
shares
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding [Roll Forward]  
Options Outstanding, Shares, Beginning of Period | shares 5,953,771
Options Outstanding, Shares, Options Granted | shares 75,000
Options Outstanding, Shares, Options Exercised | shares (1,186,096)
Options Outstanding, Shares, Options Canceled | shares (287)
Options Outstanding, Shares, Options Forfeited | shares (90,862)
Options Outstanding, Shares, End of Period | shares 4,751,526
Options Outstanding, Shares, Vested and Expected to Vest | shares 4,751,489
Options Outstanding, Shares, Exercisable | shares 4,391,379
Share-based Compensation Arrangement by Share-based Payment Award, Options, Outstanding, Weighted Average Exercise Price [Roll Forward]  
Options Outstanding, Weighted Average Exercise Price, Beginning of Period, USD per Share | $ / shares $ 8.92
Options Outstanding, Weighted Average Exercise Price, Options Granted, USD per Share | $ / shares 54.87
Options Outstanding, Weighted Average Exercise Price, Options Exercised, USD per Share | $ / shares 8.19
Options Outstanding, Weighted Average Exercise Price, Options Canceled, USD per Share | $ / shares 57.87
Options Outstanding, Weighted Average Exercise Price, Options Forfeited, USD per Share | $ / shares 23.83
Options Outstanding, Weighted Average Exercise Price, End of Period, USD per Share | $ / shares 9.53
Options Outstanding, Weighted Average Exercise Price Per Share, Vested and Expected to Vest, USD per Share | $ / shares 9.53
Options Outstanding, Weighted Average Exercise Price Per Share, Exercisable, USD per Share | $ / shares $ 8.38
Share-based Compensation Arrangement by Share-based Payment Award, Options, Additional Disclosures [Abstract]  
Options Outstanding, Weighted Average Remaining Contractual Term, End of Period (in years) 5 years 4 months 27 days
Options Outstanding, Weighted Average Remaining Contractual Term, Vested and Expected to Vest (in years) 5 years 4 months 27 days
Options Outstanding, Weighted Average Remaining Contractual Term, Exercisable (in years) 5 years 3 months 7 days
Options Outstanding, Aggregate Intrinsic Value, End of Period | $ $ 217,321
Options Outstanding, Aggregate Intrinsic Value, Vested and Expected to Vest | $ 217,320
Options Outstanding, Aggregate Intrinsic Value, Exercisable | $ $ 205,899