function checkAll(source, check)
{
	var group = source.parentNode.parentNode.parentNode.getElementsByTagName('INPUT');

	if (source.checked) state = true; else state = false;

	for (var i = 0; i < group.length; i++)
	{
		if (source.parentNode != group[i].parentNode)
		{
			group[i].disabled = state;
			group[i].checked = check ? state : false;
		}
	}
}

function buy(source)
{
	var count = 0;
	var error = 0;
	var group = source.parentNode.parentNode.parentNode.getElementsByTagName('INPUT');

	for (var i = 0; i < group.length; i++)
	{
		if (group[i].checked && group[i].id.indexOf("all") < 0)
		{
			var result = addItem(group[i].id, findAttribute(group[i], "price"));

			if (result == false) error++;

			count++;
		}
	}

	if (error != 0)
	{
//		alert("Shopping cart can contain only 50 items. " + error + " track(s) had not been added.");
		alert("Please be informed that we cannot process more than 50 tracks simultaneously. The first 50 tracks that you have chosen were added to your shopping basket. Sorry for the inconvenience and thank you for supporting your favorite artists!");
	}

	if (count != 0)
	{
		if ((window.opener != null) && (!window.opener.closed))
		{
			window.opener.showBasketPanel();
		}
		else
		{
			showBasketPanel();
		}
	}
	else
	{
		if ((window.opener != null) && (!window.opener.closed))
		{
			window.opener.hideBasketPanel();
		}
		else
		{
			hideBasketPanel();
		}
	}
}

function roundNumber(number, precision)
{
	return Math.round(number * Math.pow(10, precision)) / Math.pow(10, precision)
}

function showBasketPanel()
{
	var c = findObject("basket_area");

	if (c != null)
	{
		var d = extractData(getCookie("epm3ie.cart"));
		var i = 0;
		var s = 0;

		for (var a in d)
		{
			if (0 != parseFloat(d[a]))
			{
				var value = parseFloat(d[a]);

				if (!isNaN(value))
				{
					s += value;

					i++;
				}
			}
		}

		if (c != null && i != 0 && !isNaN(s))
		{
			c.style.display = 'block';
			c.style.visibility = 'visible';

			var n = findObject("basket_items_number");
			var t = findObject("basket_total_cost");

			if (n != null && t != null)
			{
				n.innerHTML = i.toString();
				t.innerHTML = roundNumber(s, 2).toString();
			}

			var h = findObject("aShoppingCart");
			var l = findObject("sShoppingCart");

			if (h != null && l != null)
			{
				h.style.display = l.style.display = 'inline';
				h.style.visibility = l.style.visibility = 'visible';
			}
		}
	}
}

function hideBasketPanel()
{
	var c = findObject("basketarea");

	if (c != null)
	{
		c.style.display = 'none';
		c.style.visibility = 'hidden';

		var h = findObject("aShoppingCart");
		var l = findObject("sShoppingCart");

		if (h != null && l != null)
		{
			h.style.display = l.style.display = 'none';
			h.style.visibility = l.style.visibility = 'hidden';
		}
	}
}

function extractData(source, exclude)
{
	var AData = new Array();

	if (source != null && source != "")
	{
		var AD = source.split("-");

		if (source != "")
		{
			for (var i = 0; i < AD.length; i++)
			{
				var name = AD[i].split("/");

				if (exclude != null && exclude != "")
				{
					if (name[0] != exclude) AData[name[0]] = name[1];
				}
				else
				{
					AData[name[0]] = name[1];
				}
			}
		}
	}

	return AData;
}

function packData(aData)
{
	var s = "";

	for (var d in aData)
	{
		var value = parseFloat(aData[d]);

		if (!isNaN(value))
		{
			s = s + (d + "/" + value + "-");
		}
	}

	return ((s == "") ? "" : s.substring(0, s.length - 1));
}

function addItem(id, price)
{
	var d = extractData(getCookie("epm3ie.cart"));
	var i = 0;

	for (var a in d) { i++; }

	if (i < 50)
	{
		d[id] = price;
		id = packData(d);

		setCookie("epm3ie.cart", id);

		if (id != getCookie("epm3ie.cart"))
		{
			alert("Your browser should be support \"cookie\", otherwise use basket is impossible.");
		}
	}
	else
	{
		return false;
	}

	return true;
}

function deleteItem(id)
{
	var d = extractData(getCookie("epm3ie.cart"), id);

	id = packData(d);

	setCookie("epm3ie.cart", id);

	if (id != getCookie("epm3ie.cart"))
	{
		alert("Your browser should be support \"cookie\", otherwise use basket is impossible.");
	}
}

// Cookies
function setCookie(name, value)
{
	var D = new Date();

	D.setDate(D.getDate() + 1);

	document.cookie = name + "=" + escape(value) + "; expires=" + D.toGMTString() + "; path=/";
}

function getCookie(name)
{
	var s = name + "=";
	var i = 0;

	if (document.cookie.substring(0, s.length) != s)
	{
		s = "; " + s;
		i = document.cookie.indexOf(s)};

		if (i > -1)
		{
			i += s.length;
			
			var endstr = document.cookie.indexOf(";", i);

			if (endstr == -1) endstr = document.cookie.length;

			return unescape(document.cookie.substring(i, endstr))
		}
	else
	{
		return "";
	}
}

function deleteCookie(name)
{
	var D = new Date();

	D.setDate(D.getDate()-(7*365));

	value = getCookie(name);

	document.cookie = name + "=" + value + "; expires=" + D.toGMTString() + "; path=/";
}
