//if set to true show mini cart animation on successful addToCart action.
var showMiniCartOnAddToCart = false;

function add2Cart2(formId, action, buttonDivId, linkBox) {
	var parameters = $(formId).serialize(true);
	unbindCart(formId, buttonDivId, linkBox);
	new Ajax.Request(action, {
		parameters : parameters,
		onSuccess : function(transport) {
			processAdd2CartResponse(transport);
		},
		onLoading : function(transport) {
		},
		onComplete : function(transport) {
			bindCart(formId, buttonDivId, linkBox);
		}
	});
}

function add2Cart(action, buttonDivId, linkBox) {
	unbindCart("", buttonDivId, linkBox);
	new Ajax.Request(action, {
		onSuccess : function(transport) {
			processAdd2CartResponse(transport);
		},
		onLoading : function(transport) {
		},
		onComplete : function(transport) {
			bindCart("", buttonDivId, linkBox);
		}
	});
}

function hideCartAuto() {
	$('add-cart-success').hide();
}

function processAdd2CartResponse(transport) {
	if(transport.responseText && transport.responseText.evalJSON() != null){
		var result = transport.responseText.evalJSON();
	}
	switch (result.severity) {
		case 0: 	
			updateCartInfo();
			if(!showMiniCartOnAddToCart) {
				$('add-cart-success').show();
				setTimeout("hideCartAuto()", 10000);
			}
			clearMessage();
			break;
		case 1: 
			updateCartInfo();
			if(!showMiniCartOnAddToCart) {
				$('add-cart-success').show();
				setTimeout("hideCartAuto()", 10000);
			}
			showMessage(result.message, result.severity);
			break;
		case 2: 
			showMessage(result.message, result.severity);
			break;
	}
}

function updateCartInfo() {
	var cartInfoUrl = '/scoweb/pages/tiles/mini_cart.grid';

	new Ajax.Request(cartInfoUrl, {
		onSuccess : function(transport) {
			processCartInfoResponse(transport.responseText);
		}
	});
}


function processCartInfoResponse(responseText) {
	var miniCart = $('cart_ie');
	miniCart.update(responseText);
	var miniCartOpenedId = 'mini-cart-opened';
	if (showMiniCartOnAddToCart) {
		Effect.SlideDown(miniCartOpenedId);
		closeMiniCart.delay(5, miniCartOpenedId);
	} else {
		miniCart.highlight();
	}
}

function closeMiniCart(miniCartOpenedId) {
	if ($(miniCartOpenedId).visible()) {
		Effect.SlideUp(miniCartOpenedId);
	}
}

function unbindCart(formId, buttonDivId, linkBox) {
	var form = $(formId);
	if (form){
		form.disable();
	}
	var addToCartBtn = $('btn-add-to-cart');
	if (!addToCartBtn){
		addToCartBtn = $(formId+":btn-add-to-cart");
	}
	var buttonDiv = $(buttonDivId);
	if (buttonDiv){
		buttonDiv.hide();
	}
	else{
		if (addToCartBtn){
			addToCartBtn.hide();
		}	
	}
	
	var parent = $(linkBox);
	
	var spinner = new Element("img" , {"src" : "/scoweb/images/spinner.gif", "id" : formId + ":spinner"});
	spinner.hide();
	parent.appendChild(spinner);
	var i = 0;
	while (true){
		if (spinner.complete == true){
			break;
		}
		i++;
		if (i == 10){
			break;
		}
	}
	spinner.show();
	
	
}

function bindCart(formId, buttonDivId, linkBox) {
	var buttonDiv = $(buttonDivId);
	
	var addToCartBtn = $('btn-add-to-cart');

	if (!addToCartBtn){
		addToCartBtn = $(formId + ':btn-add-to-cart');
	}
	if (buttonDiv){
		buttonDiv.show();
	}
	else{
		addToCartBtn.show();
	}
	var spinner = $(formId + ":spinner");
	if (spinner){
		spinner.remove();
	}
	var form = $(formId);
	if (form){
		form.enable();
	}
}


