var Cart = Cart ? Cart : {};

Cart.IsEmpty = true; // this will be set in the page

Cart.Add = function (prodID, qty, callback) {
	prodID = parseInt(prodID);
	qty = parseInt(qty);
	if (!isNaN(prodID) && prodID > 0 && !isNaN(qty) && qty > 0) {
		Cart.Request({ action: "addtocart", prodid: prodID, q: qty }, callback);
		return true;
	}
	return false;
}

Cart.Update = function (prodID, qty) {
	// to do
	Cart.Request({action:"getcartstatus"});
	return false;
}

Cart.Remove = function (prodID) {
	return Cart.Update(prodID, 0);
}

Cart.Refresh = function () {
	Cart.Request({action:"getcartstatus"});
	return false;
}

Cart.Request = function (arg, callback) {

	var $cart_status = jQuery("div#cart_status");

	$cart_status.animate({ opacity: 0 }, { complete: function () {

		$cart_status.load("/ajax.asp", arg, function (responseText, textStatus, XMLHttpRequest) {

			$cart_status.animate({ opacity: 1 }, {complete: callback});

		});

	}});

}

Cart.Listing = function ($container, callback) {
	$container.load("/ajax.asp", { action: "getcartlisting" }, function (responseText, textStatus, XMLHttpRequest) {
		//alert("listing loaded");
		if (callback != null)
			callback();
	});
}

Cart.AddFromList = function (prodID) {

	var qty = 1;

	var $sales_area = jQuery('#sales_area_' + prodID);

	var $options = $sales_area.find('select');
	if ($options != null && $options.length > 0) {
		prodID = $options.val();
		prodID = parseInt(prodID);
		if (isNaN(prodID) || prodID < 1) {
			alert("Alege o varianta!");
			return false;
		}
	}

	var $qty = $sales_area.find('input:text');
	if ($qty != null && $qty.length > 0) {
		qty = $qty.val();
		qty = parseInt(qty);
		if (isNaN(qty) || qty < 1) {
			alert("Cantitatea introdusa nu este valida!");
			return false;
		}
	}

	var $loading = $sales_area.find('div.loading');
	if ($loading != null && $loading.length > 0) {
		$loading.fadeIn(400).siblings().hide();
	}

	Cart.Add(prodID, qty, function () {

		$qty.val('1');

		if ($loading != null && $loading.length > 0) {
			$loading.hide().siblings().fadeIn(800);
		}

		Cart.DemoWarning();

	});

	return false;
}

Cart.ConfirmAction = function (action) {
	if (!Cart.IsEmpty) {
		if (action == 'reissueorder') {
			return confirm("Produsele din aceasta comanda vor fi adaugate la comanda curenta.\nSigur vreti sa continuati?");
		} else if (action == 'replaceorder' || action == 'modifyorder') {
			return confirm("Aveti o comanda nefinalizata. Aceasta actiune va inlocui cosul curent cu datele din comanda.\nSigur vreti sa continuati?");
		}
	}
	return true;
}

Cart.DemoWarning = function () {

	var $warning = jQuery('#msg_demo_order_trigger');
	if ($warning != null && $warning.length > 0) {
		if (cukie('warned_about_demo') == '') {
			cukie('warned_about_demo', 'y');
			$warning.click();
		}		
	}

}

Cart.IsWithinOrderingPeriod = function () {
	var $warning = jQuery('#msg_order_limits_trigger');
	if ($warning != null && $warning.length > 0) {
		$warning.click();
		return false;
	}
	return true;
}

Cart.Send = function (action) {
	if (Cart.IsWithinOrderingPeriod()) {
		jQuery("#main_cart_action").val(action);
		jQuery("#main_cart_form").submit();
	}
}
