Annual report pursuant to Section 13 and 15(d)

10. Stock Options and Warrants (Details-Warrants Outstanding)

v2.4.1.9
10. Stock Options and Warrants (Details-Warrants Outstanding) (USD $)
12 Months Ended
Dec. 31, 2014
Dec. 31, 2013
Dec. 31, 2012
Ending Balance 0us-gaap_ClassOfWarrantOrRightOutstanding 0us-gaap_ClassOfWarrantOrRightOutstanding 4,400,000us-gaap_ClassOfWarrantOrRightOutstanding
Warrants      
Beginning Balance 11,763,966us-gaap_ClassOfWarrantOrRightOutstanding
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
42,205,507us-gaap_ClassOfWarrantOrRightOutstanding
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
49,106,280us-gaap_ClassOfWarrantOrRightOutstanding
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Granted 761,037us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
150,000us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
9,273,316us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Exercised (4,690,947)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
(29,037,389)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
(12,039,846)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExercised
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Cancelled (2,141,969)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
(1,554,152)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
(4,134,243)us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardNonOptionEquityInstrumentsExpirations
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Ending Balance 5,692,087us-gaap_ClassOfWarrantOrRightOutstanding
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
11,763,966us-gaap_ClassOfWarrantOrRightOutstanding
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
42,205,507us-gaap_ClassOfWarrantOrRightOutstanding
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Weighted Average Exercise Price, Outstanding Beginning Balance $ 0.34us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.31us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.32us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Weighted Average Exercise Price, Granted $ 0.71us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.30us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.31us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Weighted Average Exercise Price, Exercised $ 0.30us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.29us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.29us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Weighted Average Exercise Price, Cancelled $ 0.46us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.33us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.49us-gaap_ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
Weighted Average Exercise Price, Outstanding Ending Balance $ 0.38us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.34us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember
$ 0.31us-gaap_ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
/ us-gaap_AwardTypeAxis
= us-gaap_WarrantMember