function price_string(x, symbol)
	// converts a given float into a price string like 12,34.
	// symbol defines the character for the decimal point (usually , or .)
	{
	if (x === "") return "";
	x = String(Math.round(x * 100));
	while (x.length < 3) x = "0" + x;
	var kommaPos = x.length - 2;
	x = x.substring(0,kommaPos) + symbol + x.substring(kommaPos);
	return x;
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function get_itemprice(x)
	// fetches the price of an individual album and returns it as float
	{
	x = document.getElementById(x).innerHTML;
	x = x.toLowerCase();
	x = x.replace(/<nobr>/, "");
	var y = x.split(" ");
	x = parseFloat(y[0].replace(/,/,"."));
	return x;
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function update_prices() // updates all prices on the page, updates the shopping cart and deactivates the checkout button.
	{
	var bestellwert = 0;
	var albenGesamt = 0;
	var cartChanged = false;
	// update zwischensummen
	for (i=0; i<cartItems; i++)
		{
		var anzahl = document.getElementById("anzahl" + i).value;
		if (anzahl == "") anzahl = "0";
		if (String(parseInt(anzahl)) != anzahl)
			{
			anzahl = itemCountCheck[i];
			document.getElementById("anzahl" + i).value = anzahl;
			}
		else if (itemCountCheck[i] != anzahl)
			{
			itemCountCheck[i] != anzahl;
			cartChanged = true;
			}
		anzahl = parseInt(anzahl);
		var einzelpreis = get_itemprice("einzelpreis" + i);
		var zwischensumme = anzahl * einzelpreis;
		bestellwert += zwischensumme;
		zwischensumme = price_string(zwischensumme, decimalPoint);
		document.getElementById("zwischensumme" + i).innerHTML = "<nobr>" + zwischensumme + " &euro;</nobr>";
		}
	// update bestellwert
	var strBestellwert = price_string(bestellwert, decimalPoint);
	document.forms.shopform.bestellwert.value = strBestellwert;
	document.getElementById("priceCDs").innerHTML = '<nobr><b>' + strBestellwert + ' &euro;</b></nobr>';
	// update cart and button spans
	var usag = navigator.userAgent.toLowerCase();
	if (cartChanged) document.getElementById("resetButton").style.display = "block";
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function reset_cart()
	{
	// identify browser
	var usag = navigator.userAgent.toLowerCase();
	var browser = "mozilla";
	if (usag.indexOf("msie") != -1) browser = "msie";
	else if (usag.indexOf("opera") != -1) browser = "opera";
	// reset anzahl values
	for (i=0; i<cartItems; i++)
		{
		if (browser == "msie") document.getElementById("row" + i).style.display = "inline";
		else if (browser == "mozilla" || browser == "opera") document.getElementById("row" + i).style.display = "table-row";		
		document.getElementById("anzahl" + i).value = itemCountInit[i];
		itemCountCheck[i] = itemCountInit[i];
		}
	update_cart();
	// hide reset button
	document.getElementById("resetButton").style.display = "none";
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function update_cart()
	{
	update_prices();
	var itemsToDelete = "";
	for (i=0; i<cartItems; i++)
		{
		if (document.getElementById("anzahl" + i).value == "0") itemsToDelete += document.getElementById("shop_item_id" + i).value + ",";
		}
	document.forms.shopform.shop_delete.value = itemsToDelete;
	document.getElementById("checkoutButton").style.display = "none";
	document.getElementById("checkoutWait").style.display = "inline";
	document.forms.shopform.submit();
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function checkout()
	{
	update_cart();
	document.forms.checkoutform.rechnungsbetrag.value = document.forms.shopform.bestellwert.value;
	setTimeout("checkout2()",500);
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function checkout2()
	{
	if (document.getElementById("checkoutButton").style.display == "inline") document.forms.checkoutform.submit();
	else setTimeout("checkout2()",500);
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function increase(x)
	{
	document.getElementById("anzahl" + x).value = parseInt(document.getElementById("anzahl" + x).value) + 1;
	update_cart()
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function decrease(x)
	{
	var y = document.getElementById("anzahl" + x).value;
	if (y > 0) y--;
	document.getElementById("anzahl" + x).value = y;
	update_cart()
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function delete_item(x)
	{
	document.getElementById("row" + x).style.display = "none";
	document.getElementById("anzahl" + x).value = "0";
	update_cart()
	}

//---------------------------------------------------------------------------------------------------------------------------------------------------------------

function init_page()
	{
	if (cartItems <= 0)
		{
		document.getElementById("cartList").style.display = "none";
		document.getElementById("cartEmptyMessage").style.display = "block";
		}
	else
		{
		document.getElementById("cartList").style.display = "block";
		document.getElementById("cartEmptyMessage").style.display = "none";
		}
	update_prices();
	update_footer('cart');
	}


