//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) {
		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(e){
			e = new Event(e);
			e.preventDefault();
			if($(productSelect) && $(productSelect).value=='0'){
				$(warrning).style.visibility="visible";
				setTimeout(function(){$(warrning).style.visibility="hidden";}, 2000);
				
			}else{
			minicart.addProduct(currentFormVar, url, cartButton);
			}
			return false;
		});
	},
	addProduct: function(form, url, cartButton) {
		var cartButton = cartButton;
		var ajax = new Ajax(url, {method: 'post', data: form, onComplete: minicart.showBasketWhenComplete}).request();
		updateButton(cartButton);
	},
	getProduct: function(form, select, url) {
		
			form.pid.value=select.value;
			
			select.addEvent('change', function(e){
			e = new Event(e);
				if(form.pid.value!= select.value && select.value != '0'){
					form.pid.value=select.value;
					minicart.doCoremetrics(form, url);
				}
			e.stop();
		});
	},
	// 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();
		
	},
	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.setHTML(totalsResult);
				
	}
};

window.addEvent('domready', function() {
	
	$$('div.addProductBasket').each( function(el){
		
		var productID = el.getProperty('id');
		var inputButton = 'addProduct'+productID;
		var productForm = 'cartaddproduct'+productID;
		var productSelect = 'productSelect'+productID;
		var hiddenUrl = 'hiddenURL'+productID;
		var warrning = 'chooseValid'+productID;
		var coremetricsURL = 'hiddenURLCoremetrics'+productID;
		minicart.init( inputButton, productForm, hiddenUrl, productSelect, warrning, coremetricsURL);
	});

});
