// AddToCart.js

// newFunction
var busy = false;
var quantityLabel;
var boxTimer = 5000;
var closeBoxesTimer = 0;
var bagPopup;

function AddToCart(quantity) {
	if (busy) {
		return;
	}

	busy = true;
	if (!addToCartParameters.catEntryId || addToCartParameters.catEntryId == '??') {
		showInfo(noItemChosenError);
		location.href="#tab1";
		busy = false;
		return;
	}

	var d = doSimpleXMLHttpRequest("OrderItemAdd", addToCartParameters);
	d.addCallbacks(handleResponce, defaultErrorHandle);
	d.addCallbacks(function() {
		log("Item added");
		bag.update();
		bag.show(quantity);
		closeBoxesTimer = bag.hide.delay(boxTimer);
	}, defaultErrorHandle);
	
	busy = false;
}

function handleResponce(result) {
	var jsonResult = evalJSONRequest(result);
	if (jsonResult.status == "error") {
		throw jsonResult.exception.message;
	}
	busy = false;
	return jsonResult;
}

function defaultErrorHandle(error) {
	if (!error.logged) {
		error.logged = true
		logError(error);
		if (error.error != "") {
			showInfo(error.message);
		}
	}
	busy = false;	
	throw error;
}
var bag = {
	"update": function() {
			if (isNull(bag.updating)) {
				bag.updating = doSimpleXMLHttpRequest("JSONShoppingBag", shoppingBagUpdateParameters);
				var result = bag.updating;
				bag.updating.addCallbacks(handleResponce, defaultErrorHandle);
				bag.updating.addCallbacks(function(result) {
					bag.loaded = true;
					if (result.status == "empty" || result.items.length == 0) {
						log("empty");
						$("checkoutButton").addClass("hidden");
					} else {
						log("not empty");
						bag.items = result.items;
						bag.count = result.itemCount;
						bag.repaint();
						$("checkoutButton").removeClass("hidden");
					}
					bag.updating = null;
				}, defaultErrorHandle);
				return result;
			}
			return bag.updating;
		},
	"repaint": function() {
			log("repainting");
			$('basket-item-count').set('text', bag.count);
			$('basket-item-count2').set('text', bag.count);
			if (bag.count > 0) {
				$('checkoutButton').removeClass('hidden');
			} else {
				$('checkoutButton').addClass('hidden');
			}
			//var itemList = getElementsByTagAndClassName("div", "scroll-content", 'scroll')[0];
			var itemList = $('scroll-pane')
			var elements = [];
			for(var i = 0; i < bag.items.length; i++) {
				elements.push(
					DIV({"class": "itembag"},
						IMG({"class": "productimg", "src": i % 2 == 0? bag.items[i].image : bag.items[i].image_alt}),
						DIV({"class": "descr_pdt"},
							(null, bag.items[i].name)
							
						)
						
					)
				);
			}
			replaceChildNodes(itemList, elements);
		},
	"toggle": function() {
			logError("not implemented");
			if (!bag.loaded) {
				//var d = bag.update();
				//d.addCallback(bag.show);
			} else {
				//toggleElementClass("bag", "active");
			}
		},
	"show": function(quantity) {
			if (!bag.loaded) {
				bag.update().addCallback(bag.show);
			} else {
				//removeElementClass("basket-drop-down", "hidden");
			//	bag.effect.start({"height": "288px"});
				jQuery("div#drop_basket").slideDown("slow");
				if(jQuery(".contentbag > .jScrollPaneContainer").length == 0)
					jQuery('.contentbag > .scroll-pane').jScrollPane({scrollbarWidth:5, dragMaxHeight:19});
			}
		},
	"hide": function() {
			//bag.effect1.start({"height": "0px"});
			jQuery("div#drop_basket").slideUp("slow");
		},
	"items": [],
	"count": 0,
	"loaded": false,
	"updating": null,
	"effect": null,
	"initialize": function() {
		
		var itemCount = Cookie.read(shoppingBagItemCountCookieName);
		if (itemCount > 0) {
			this.count = itemCount;
			$('basket-item-count').set('text', this.count);
			$('basket-item-count2').set('text', this.count);
			if (this.count > 0) {
				$('checkoutButton').removeClass('hidden');
			} else {
				$('checkoutButton').addClass('hidden');
			}
		}
		
		var newPopup = $("drop_basket");
		
		if(newPopup != null) {
			newPopup.addEvent('mouseleave', function(){
				closeBoxesTimer = bag.hide.delay(boxTimer);									  
			}).addEvent('mouseenter', function(){ 
				if($defined(closeBoxesTimer)) $clear(closeBoxesTimer); 
			});
		}
	}
}
window.addEvent('domready', bag.initialize);

jQuery(document).ready(function() {
	  
	  		jQuery("#drop_basket").hide();			
			
			jQuery("a.basket").click(function(){
			  jQuery("div#drop_basket").slideDown("slow");
				if(jQuery(".contentbag > .jScrollPaneContainer").length == 0)
					jQuery('.contentbag > .scroll-pane').jScrollPane({scrollbarWidth:5, dragMaxHeight:19});
			});
			jQuery("a.basket_open, .close_basket").click(function(){
			  jQuery("div#drop_basket").slideUp("slow")
			});									

});