function inpPrecios () {
	$$('.inputnumero').addEvents ({
		'keypress': function (ev) {
			if (!((ev.code >= 48 && ev.code <= 57)
				|| ev.key == 'enter'
				|| ev.key == 'left'
				|| ev.key == 'right'
				|| ev.key == 'enter'
				|| ev.key == 'backspace'
				|| ev.key == 'delete'
				|| ev.key == 'tab'
			)) return false;
		},
		'keyup': function (ev) {
			v = (this.value == '' ? 0 : this.value).toInt ();
			p = this.getParent ().getNext ().get ('title').toFloat ()
			this.getParent ().getNext ().getNext ().set ({
				'html': (v * p).toFixed (2) +'&nbsp;&euro;',
				'title': (v * p).toFixed (2)
			});
			actPrecios ();
		}
	});
}
function actPrecios () {
	var t = 0;
	$$('.inputnumero').each (function (o) { t += o.getParent().getNext().getNext().get ('title').toFloat (); });
	$('impTotal').store ('importe', t);
	t += actRecargos ();
	$('impTotal').set ('html', t.toFixed (2) + '&nbsp;&euro;');
}
function actRecargos () {
	$('impTotal').recargo = 0;
	$H(recargos).each (function (d, k) {
		$('impTotal').store ('bbucle', -1);
		$('impTotal').store ('recconcepto', k);
		$H(d.c).each (function (cd, ck) {
			$('impTotal').store ('reccampo', 'c_'+ ck);
			base = $('dat_'+ ck) ? $('dat_'+ ck).get ('value') : $('impTotal').retrieve (ck);
			$('impTotal').store ('c_'+ ck, {c:ck,m:0,t:0,i:base});
			cd.each (function (cdd) { 
				bb = $('impTotal').retrieve ('bbucle');
				v = $('impTotal').retrieve ($('impTotal').retrieve ('reccampo'));
				switch (cdd.c) {
					case '<': b = v.i < cdd.l; break;
					case '>': b = v.i > cdd.l; break;
					case '<=': b = v.i <= cdd.l; break;
					case '>=': b = v.i >= cdd.l; break;
					case '=': b = v.i = cdd.l; break;
				}
				bb = bb < 0 ? b : $type(bb) == 'boolean' && bb && b;
				if (bb && $type (cdd.r)) {
					v.m = cdd.r;
					if ($type (v.m) == 'string' && v.m.indexOf ('%') > 0) {
						v.t = $('impTotal').retrieve ('importe') * v.m.toInt ()/100;
					}
					else v.t += v.m;

					$('impTotal').recargo += v.t;
					$('impTotal').store ($('impTotal').retrieve ('reccampo'), v);
					$('rec'+ $('impTotal').retrieve ('recconcepto') +'mod').set ('html', typeof v.m == 'number' ? v.m.toFixed (2) +' €': v.m);
					$('rec'+ $('impTotal').retrieve ('recconcepto') +'tot').set ('html', v.t.toFixed (2) +' €');
				}
				$('impTotal').store ('bbucle', $type (v.b) ? bb : -1);
			});
		});
	});
	return $('impTotal').recargo;
}

window.addEvent ('domready', function () {
	$('dat_accion').addEvent ('change', function (ev) {
		if (this.getSelected ().get ('value').toString () == 'enviar') {
			$('dat_formadepago').getElement ('option[value=tienda]').setStyle ('display', 'none');
			$('dat_direccion').getParent ().setStyle ('display', 'block');
			$('dat_formadepago').getParent ().setStyle ('display', 'block');
		}
		else {
			$('dat_formadepago').getElement ('option[value=tienda]').setStyle ('display', 'block');
			$('dat_formadepago').set ('value', 'tienda');
			$('dat_direccion').getParent ().setStyle ('display', 'none');
			$('dat_formadepago').getParent ().setStyle ('display', 'none');
		}
	});
	$('dat_accion').fireEvent ('change');
	$$('a.carrRem').addEvent ('click', function (ev) {
		ev.stop ();
		quitado = 0;
		if (this.getParent ().getParent ().getParent ().getChildren ().length == 2) {
			if (confirm ('Es el último artículo, si lo borras habras vaciado el carrito.')) {
				quitado = this.href.substr (this.href.lastIndexOf ('/')+1);
				tBody = this.getParent ().getParent ().getParent ();
				this.getParent ().getParent ().destroy ();
				oTr = new Element ('tr');
				oTr.adopt (new Element ('td', {
					'colspan': 5,
					'text': 'No hay ningún producto seleccionado... así no puedes hacer el pedido!'
				}));
				oTr.inject (tBody, 'top');
				actPrecios ();
			}
		}
		else if (confirm ('¿Seguro que no lo quieres?')) {
			quitado = this.href.substr (this.href.lastIndexOf ('/')+1);
			this.getParent ().getParent ().destroy ();
			actPrecios ();
		}
		if (quitado > 0) {
			rq = new Request.JSON ({ url: _basePath +'xhr/carrito/quitar/'+ quitado }).get ();
			$('carrCont').set ('html', $('carrCont').get ('html').toInt () -1);
		}
	});
	inpPrecios ();
});
