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

interface Templates {
	lotteryTicketAddedNotification: Template;
}

Template.lotteryTicketAddedNotification.rendered = function () {

	var self: Notifications.NotificationClient = <any>this.data;
	var ticketId = self.options.content;
	Session.set('notificationTicketId', ticketId);

	var ticket: Lotteries.Ticket = Lotteries.Ticket.db.findOne({_id: ticketId});
	if (ticket) {
		Session.set('notificationLotteryId', ticket.lotteryInstance.id);
	}

	this.autorun(() => {
		var selector = {_id: ticketId};
		var options = {};
		this.subscribe('Lotteries.Ticket', selector, options);
		var ticket = Lotteries.Ticket.db.findOne(selector);
		if (ticket) {
			this.subscribe('Lotteries.LotteryInstance', {_id: ticket.lotteryInstance.id});
		}
	});
};

Template.lotteryTicketAddedNotification.helpers({

	ticket: function () {
		var ticket: Lotteries.Ticket = Lotteries.Ticket.db.findOne({_id: (<any>this).options.content});
		return ticket;
	}

});

Template.lotteryTicketAddedNotification.events({

	'click .howl-close': function () {
	},

	'click .howl-message-inner': function () {
		var ticket: Lotteries.Ticket = this;
		if (!ticket) {
			return;
		}
		var lottery = Lotteries.LotteryInstance.db.findOne({_id: ticket.lotteryInstance.id});
		if (!lottery) {
			return;
		}
		Pages.go(`/lotteries/${lottery.handle}`);
	}

});

