var $ = document.id;

//reset button values
var resetButton = function(cartButton) { $(cartButton).removeClass('important').setProperty('value', 'Buy'); }
var updateButton = function(cartButton) { var cartButton = cartButton; $(cartButton).addClass('important').setProperty('value', 'Added'); resetButton.delay(2000, cartButton, cartButton); }

//add to basket
var minicart = {
	init: function(cartButton, currentForm, hiddenUrl, productSelect, warrning, coremetricsURL) {
		var $ = document.id;
		if(!document.getElementById(cartButton)) return;
		
		var currentForm = currentForm;
		var cartButtonVar;
		var currentFormVar;
		var urlVar;
		var addToCartButton = document.getElementById(cartButton);
		var url = document.getElementById(hiddenUrl).value;
		var coremetricsurl = document.getElementById(coremetricsURL).value;
		
		currentFormVar = eval("document.forms['"+currentForm+"']");
		cartButtonVar = cartButton;
		//Handling of product variants quick buy
		if ($(productSelect))
			minicart.getProduct(currentFormVar,$(productSelect), coremetricsurl);
		
		$(cartButtonVar).addEvent('click', function(event){
			event.preventDefault();
			
			if ($(productSelect) && $(productSelect).value=='0') {
				$(warrning).setStyle("visibility", "visible");
				setTimeout(function(){$(warrning).setStyle("visibility", "hidden");}, 2000);
			}
			else {
				minicart.addProduct(currentFormVar, url, cartButton);
			}
			return false;
		});
	},
	addProduct: function(form, url, cartButton) {
		var cartButton = cartButton;
		var ajax = new Request({url: url, method: 'post', data: form, onComplete: minicart.showBasketWhenComplete}).send();
		updateButton(cartButton);
	},
	getProduct: function(form, select, url) {
		select.addEvent('change', function(event) {
			if(select.value != '0'){
				form.pid.value=select.value;
				minicart.doCoremetrics(form, url);
			}
		});
	},
	
	// dummy method
	doNothing: function (form, url) {
		
	},
	doCoremetrics: function (form, url) {
		// var ajax1 = new Ajax(url ,{method: "post", data: form ,update:"cmShopAction",evalScripts: true, onComplete: minicart.doNothing }).request();
		var ajax1 = new Request({url: url, method: 'post', data: form, update:"cmShopAction",evalScripts: true, onComplete: minicart.doNothing }).send();
		
	},
	showBasketWhenComplete: function(result) {
		var basketId = "basketContent";
		var totalsId = "smallShoppingCart";
		var basketObj = $(basketId);
		var totalsObj = $(totalsId);
		var strResult = result.split('<ul id="basketContent" class="clearfix">');
		
		strResult = result.split('<ul id="utilsItemPrice">');
			
		var totalsResult = strResult[1].split('</ul>');
		totalsResult = totalsResult[0];
		
		totalsObj.set('html', totalsResult);
				
	}
};
 
window.addEvent('domready', function() {
	$$('ul.productListing li').each( function(el) {
		var productID = el.id;
		var inputButton = 'addProduct'+productID;
		var productForm = 'cartaddproduct'+productID;
		var productSelect = 'productSelect'+productID;
		var hiddenUrl = 'hiddenURL'+productID;
		var coremetricsURL = 'hiddenURLCoremetrics'+productID;
		var warrning = 'chooseValid'+productID;
		minicart.init( inputButton, productForm, hiddenUrl, productSelect, warrning, coremetricsURL);
	});
});
