var Cart = {
	mP: [],
	emsg: [
		   'Please choose products to add to the cart',
		   'The quantity must be a number',
		   'The quantity must be at least 1'
		   ],
	msga: [
		   'Product added to cart',
		   'Quantities updated',
		   'Item removed',
		   ],
	sP: function(i) {
		$('id_price_cont').innerHTML = this.mP[i];
	},
	clr: function() {
		$('errbox').style.display = 'none';
		$('msgbox').style.display = 'none';
	},
	err: function(i) {
		$('errbox').innerHTML = this.emsg[i];
		$('errbox').style.display = 'block';
	},
	msg: function(i) {
		$('msgbox').innerHTML = this.msga[i];
		$('msgbox').style.display = 'block';
	},
	add: function(f) {
		this.clr();
		
		var els = [];
		var e = f.getElementsByTagName('input');
		for (var i = 0; i < e.length; i++)
			if (e[i].type.toLowerCase() == 'text' && /^qty\[\d+\]$/i.test(e[i].name) && e[i].value != '')
				els[els.length] = e[i];
		
		if (!els.length)
			this.err(0);
		else {
			for (var i = 0; i < els.length; i++) {
				if (isNaN(parseInt(els[i].value))) {
					this.err(1);
					return false;
				} else if (parseInt(els[i].value) < 1) {
					this.err(2);
					return false;	
				}
			}
			var s = '';
			for (var i = 0; i < els.length; i++)
				s += '&' + encodeURIComponent(els[i].name) + '=' + els[i].value;
			s = s.substring(1);
			new Ajax.Request('/index.php?page=cart&sub=add', { method:'post', postBody:s, onComplete: function(t) { if (t.responseText.length) alert(t.responseText); else Cart.added(); }});
		}
		
		return false;
	},
	added: function() {
		this.msg(0);
		var e = document.addfrm.getElementsByTagName('input');
		for (var i = 0; i < e.length; i++)
			if (e[i].type.toLowerCase() == 'text' && /^qty\[\d+\]$/i.test(e[i].name) && e[i].value != '')
				e[i].value = '';
	},
	update: function(f) {
		var e = f.getElementsByTagName('input');
		var s = '';
		for (var i = 0; i < e.length; i++)
			if (e[i].type == 'text' && /^qty\[\d+\]$/i.test(e[i].name))
				s += '&'+encodeURIComponent(e[i].name) + '=' + encodeURIComponent(e[i].value);
		s = s.substr(1);
		new Ajax.Request('/index.php?page=cart&sub=update', { method:'post', postBody:s, onComplete: function(t) { if (t.responseText.length) alert(t.responseText); else { Cart.msg(1); Cart.re(); } }});
		return false;
	},
	remove: function(i) {
		new Ajax.Request('/index.php?page=cart&sub=remove&item_id='+i, { onComplete: function(t) { if (t.responseText.length) alert(t.responseText); else { Cart.msg(2); Cart.re(); } }});
		return false;	
	},
	re: function() {
		new Ajax.Updater('big_cart_c', '/req/cart/cart.req.php');
	},
	addCoupons: function() {
		var coupons = document.cofrm.coupons.value;
		new Ajax.Updater('id_coupon_res', '/req/checkout/add_coupons.req.php', { method: 'post', postBody: 'coupons='+encodeURIComponent(coupons), onComplete: function(t) { Cart.re(); } });
	},
	getShipMeth: function() {
		var postal_code = document.shfrm.postal_code.value;
		var residential = document.shfrm.residential.value;
		if (postal_code.length == 5) {
			$('id_cont_ship_meth').innerHTML = 'Loading...';
			new Ajax.Updater('id_cont_ship_meth', '/req/checkout/get_ship_meth.req.php', {method:'post', postBody: 'postal_code='+postal_code+'&residential='+residential, onComplete: function(t) { Cart.re(); }});
		}
	}
}

var Checkout = {
	reloadCart: function(s) {
		var s = s || '';
		new Ajax.Updater('big_cart_c', '/req/cart/cart.req.php', {method:'post', postBody:s});
	}
}

var P = {
	goNAv: function(ids) {
		document.location.href = '/products/notify/'+ids;	
	}
}