Array.implement({
	min: function(){return Math.min.apply(null,this)},
	max: function(){return Math.max.apply(null, this)},
	average: function(){return this.length?this.sum()/this.length:0},
	sum: function(){var r=0,l=this.length;if(l){do{r+=this[--l].toFloat()}while(l)}return r},
	unique: function(){return [].combine(this)}
});
function do_async_cart() {
	if ($chk($('content').getElement('.buy_opts'))) {
		$('content').getElements('.buy_opts').addEvent('submit', function (e) {
			e.preventDefault();
			var r = new Request({
				url : '/Ajax'+this.get('action'),
				method : 'post',
				data : 'quantity='+this.getElement('input[name="quantity"]').get('value'),
				onSuccess : function (rt) {
					if (rt.split(',')[0] == 'added') {
						this.getElement('input[type="submit"]').set('value', 'Remove from cart');
						this.getElement('input[name="quantity"]').set('disabled', true);
					} else if (rt.split(',')[0] == 'removed') {
						this.getElement('input[type="submit"]').set('value', 'Add to cart');
						this.getElement('input[name="quantity"]').set('disabled', false);
					}
					update_cart_quantity();
				}.bind(this)
			}).send();
		});
	} // */
	if ($chk($('content').getElement('.cart'))) {
		$('content').getElements('.cart .action a').addEvent('click', function (e) {
			e.preventDefault();
			var r = new Request({
				url : '/Ajax'+this.get('href'),
				onSuccess : function (rt) {
					location.reload();
					return false;
					var tbl = this.getParent('table');
					this.getParent('tr').dispose();
					tbl.getElements('tr[rel="item"]').each(
						function(el, i){
							el.set('class', (i%2?'even':''))
						}
					);
					if (tbl.getElements('tr[rel="item"]').length > 0) {
						$('total_price').set('html', tbl.getElements('td.product_price').get('rel').sum());
					} else {
						$("content_bg_overlay").set('html', 'Your cart is empty');
					}
					update_cart_quantity();
				}.bind(this)
			}).send();
		});
	}
}

function update_cart_quantity() {
	$('cart_items').load('/Ajax/Cart/Size');
}

function do_async_currency() {
	$('cart_info').getElements('a.set_currency').addEvent('click', function (e) {
		e.preventDefault();
		if (location.href.match(/Checkout|GetDetails|CommitPayment/)) {
			alert('You can not change displayed currency while payment process is in progress');
			return false;
		}
		var r = new Request({
			url : '/Ajax'+this.get('href'),
			onSuccess : function (rt) {
				location.reload();
				return false;
			}.bind(this)
		}).send();
	});

}
function do_keep_hover() {

	var res = $('content_header').getElements('a').some(function(el){
		eval("var reg = /"+el.get('href').replace('.html','').replace('/','')+"(?:\\.|\\/)/;");
		if (location.href.match(reg)) {
			el.addClass('current');
			return true;
		}
	});
	if (!res && location.pathname == '/') {
		$('content_header').getElement('a[href*="Home.html"]').addClass('current');
	}
}
window.addEvent('domready', function(){
	do_async_cart();
	do_async_currency();
	do_keep_hover();
});