(function() {
	if (arguments.callee.done) {
		return;
	}
	
	var cntr;
	var lastUse;
	var Upd;
	
	if (! $i('bpShopC')) {
		var bpShopCalc = document.createElement('div');
		bpShopCalc.id = 'bpShopC';
		bpShopCalc.innerHTML = '<img src="/modules/shop/shared/plus.png" title="Add more of this item to your cart" /><img src="/modules/shop/shared/minus.png" title="Remove some of this item from your cart" />';
		document.body.appendChild(bpShopCalc);
	}
	$('bpShopC').css({position: 'absolute', top: '-9999px', cursor: 'pointer'});

	var buttonFX = function(n) {
		lastUse = new Date();	
		$(n).anim(ease.cubic, {opacity: 50}, {opacity: 100}, 250);
	};
	
	var cartChg = $e('bpShopC', 'img');	
	
	cartChg[0].onmousedown = function(e) {
		preventDefault(e);
		changeCartNum(1);
		buttonFX(this);
	};
	
	cartChg[1].onmousedown = function(e) {
		preventDefault(e);
		changeCartNum(-1);	
		buttonFX(this);			
	};
	
	var fadeControls = function() {
		var thislastUse = new Date();
		lastUse = thislastUse;

		var hideTimer = setInterval(function() {
			if (lastUse === thislastUse) {
				$('bpShopC').anim(ease.cubic, {opacity: 100}, {opacity: 0}, 400);
			}
			clearInterval(hideTimer);
		}, 6000);	
	};
	
	var changeCartNum = function(d) {
		var curNum = parseInt(cntr.innerHTML.replace('(', '').replace(')', ''), 10);
		if (cntr.parentNode.tagName.toLowerCase() == 'a') {
			if (curNum === 1 && d === -1) return;
		}
		if (! isNaN(curNum)) {
			if ((curNum + d) < 1) {
				curNum = 1;
			}
			if (cntr.parentNode.tagName.toLowerCase() == 'a') {
				cntr.parentNode.href = cntr.parentNode.href.replace('q='+ curNum, 'q='+ (curNum + d));
			} else {
				cntr.parentNode.nextSibling.innerHTML = 'Updating...';
				clearTimeout(Upd);
				Upd = setTimeout(function() {
					var cNum = parseInt(cntr.innerHTML.replace('(', '').replace(')', ''), 10);
					var cUri = document.location.toString().toLocaleLowerCase();
					if (cUri.indexOf('/modules/shop/cart/add/') > -1 || cUri.indexOf('/modules/shop/cart/remove/') > -1) {
						var docLoc = '/modules/shop/cart/';
					} else {
						var docLoc = document.location;					
					}
					document.location = '/modules/shop/cart/change/?o='+ cntr.parentNode.getAttribute('title') +'&q='+ cNum +'&r='+ docLoc;
				}, 1200);
			}
			cntr.innerHTML = '('+ (curNum + d) +')';
		}		
	};	

	$().push($c('atc')).all(function(el) {
		cntr = $e(el, 'em')[0];
		if (cntr) {				
			$(cntr.parentNode).on('mouseover', function() {
				cntr = $e(this, 'em')[0];
				var os = offSet(cntr);
				$('bpShopC').css({top: (os[1]) + 'px', left: (os[0] + cntr.offsetWidth + 9) + 'px', display: 'block', opacity: 100});
			});
		}
	}).on('mouseover', function() {
		var lastUse = new Date();	
	}).on('mouseout', function() {
		fadeControls();
	});
	
	$('bpShopC').on('mouseout', function() {
		fadeControls();	
	});

	if ($i('shoppingCart')) {
		var trz = $e('shoppingCart', 'tr');
		for (var i = 0, j = trz.length; i < j; i++) {
			if ((i % 2) === 0) {
				trz[i].className += ' shopcartOdd'; 
			}
		}
	}
})();