///<reference path=".#ts/client.d.ts" />

interface Templates {
	numbers: Template;
}

Template.numbers.helpers({

	numbers: function(){
		var lotteryInstance = (<Lotteries.LotteryInstance>this);
		var numbers = [];
		for(var i = lotteryInstance.numberRange.min; i <= lotteryInstance.numberRange.max; i++){
			numbers.push(i);
		}
		return numbers;
	},

	numbersLeft: function(){
		return (<Lotteries.LotteryInstance>this).numberAmount - Session.get('numbersPicked').length;
	},

	tooManyNumbers: function(){
		return Session.get('numbersPicked').length > (<Lotteries.LotteryInstance>this).numberAmount;
	},

	error: function(){
		return Session.get('ticketError');
	},

	success: function(){
		return Session.get('ticketSuccess');
	},

	submitName: function(){
		return Session.get('submitName');
	},

	numbersPicked: function(){
		return Session.get('numbersPicked');
	}

});

Template.numbers.events({
	'change input[type="checkbox"]': function(e){
		var numbersPicked = Session.get('numbersPicked');
		if(e.target.checked) {
			numbersPicked.push(parseInt(e.target.id.substr(13)));
		}
		else {
			numbersPicked.splice(numbersPicked.indexOf(parseInt(e.target.id.substr(13))), 1);
		}
		Session.set('numbersPicked', numbersPicked);
	},

	'click .button-random-numbers': function(){
		var numbers = chance.unique(
			chance.natural,
			this.numberAmount,
			{
				min: this.numberRange.min,
				max: this.numberRange.max
			}
		).sort(function (a, b) {
			return a - b
		});

		$('.numbers input').prop( "checked", false);

		_.each(numbers, function(num) {
			$('.numbers input[name="numbers['+num+']"]').prop( "checked", true);
		});
		Session.set('numbersPicked', numbers);
	}
});

Template.numbers.created = function () {
	Session.set('numbersPicked', []);
};

