
Hedera.Orders = new Class
({
	Extends: Hedera.Form

	,activate: function ()
	{
		this.tpv = new Hedera.Tpv ({conn: this.conn});
		this.tpv.check (this._onTpvCheck.bind (this));
	}
	
	,_onTpvCheck: function (tpv, tpvOrder, tpvStatus)
	{
		if (tpvStatus === 'ko')
			this.$('error-dialog').show ();
	}

	,onBasketClick: function ()
	{
		this.hash.set ({form: 'ecomerce/basket'});
	}
	
	,repeaterFunc: function (res, form)
	{
		res.$('link').href = this.hash.make ({
			form: 'ecomerce/ticket',
			ticket: form.get ('id')
		});
	}

	// TPV
	
	,balanceConditionalFunc: function (field, value)
	{
		if (value >= 0)
			Vn.Node.removeClass (this.$('balance'), 'negative');
		else
			Vn.Node.addClass (this.$('balance'), 'negative');
	}
	
	,onPayButtonClick: function ()
	{
		var amount = -this.$('debt').value;
		amount = amount <= 0 ? null : amount;

		var defaultAmountStr = '';
		
		if (amount !== null)
			defaultAmountStr = Vn.Value.format (amount, '%.2d');
			
		amount = prompt (_('AmountToPay:'), defaultAmountStr);

		if (amount != null)
		{
			amount = parseFloat (amount.replace (',', '.'));
			this.tpv.pay (amount, null);
		}
	}
	
	,onDialogResponse: function (dialog, response)
	{
		if (response == Htk.Dialog.Button.RETRY)
			this.tpv.retryPay ();
	}
});

