var VbAddToCart = Class.create({
	initialize:function() {
		$$("form.add-to-cart-form").each(
			function(formular) {
				Event.observe(formular, "submit", this.submit.bindAsEventListener(this, formular));
			}.bind(this)
		);
	},
	submit:function(event, formular) {
		Event.stop(event);
		formular.down(".add-to-cart-loader").show();
		formular.down(".add-to-cart-success").hide();
		
		var url = formular.action.replace("add", "ajaxadd");
		
		new Ajax.Request(url, {
			method: "get",
			onSuccess: function(transport) {
				if(transport.responseText) {
					try {
						var response = eval("(" + transport.responseText + ")");
					}
					catch(e) {console.log(e);
						var response = { error: "An error occured." };
					}
					
					if(response.error) {
						alert(response.error);
					}
					else if(response.updates) {
						$H(response.updates).each(function(pair) {
							$$(pair.value.selector).each(function (element) {
								element.replace(pair.value.html);
							})
						});
					}
					else if(response.redirect) {
						window.location.href = response.redirect;
						return false;
					}
				}
				formular.down(".add-to-cart-loader").hide();
				formular.down(".add-to-cart-success").show();
			}.bind(this),
			onComplete: function(formular) {
				formular.enable();
			}.bind(this, formular),
			parameters: Form.serialize(formular)
		});
		
		formular.disable();
	}
});

Event.observe(window, "load", function() {
	var vbAddToCart = new VbAddToCart();
});
