function decimal(str)
	{
	var s = str + '';
	if (s.indexOf('.') == -1)
		{s = s + '.00';}
	else
		{s = s.substr(0,s.indexOf('.')+3);}

	while (s.length - s.indexOf('.') < 3)
		{s = s + '0';}

	return s;
	}

function calc()
	{
	var spent;

	if (document.shop.buddy_list)
		{spent = document.shop.cost.value - document.shop.M_buddy_cost.value;}

	var things = new Array('gld','nxp','gbk','jrn','cut','clp','bon','vch','bbg','gbg','nbg','fbg','fmg','stk','bal');

	var subtotal = 0;

	for (var thing in things)
		{
		if (document.shop['M_' + things[thing] + '_qty'])
			{
			var qty = document.shop['M_' + things[thing] + '_qty'];
			var price = 0;

			if (qty.type == 'select-one')
				{price = qty.options[qty.selectedIndex].value;}

			if (qty.type == 'checkbox')
				{price = (qty.checked ? qty.value : -1);}

			if ((qty.type == 'text') || (qty.type == 'hidden'))
				{price = qty.value;}

			if (price.indexOf(':') > -1)
				{price = price.substring(0,price.indexOf(':'));}

			if (price > 0)
				{subtotal += parseFloat(price);}
			}
		}

	if (document.shop.buddy_list)
		{subtotal += parseFloat(document.shop.M_buddy_cost.value);}

	document.shop.M_don.value = decimal(parseFloat(document.shop.M_don.value));
	subtotal += parseFloat(document.shop.M_don.value);

	document.shop.M_pay.value = decimal(parseFloat(document.shop.M_pay.value));
	subtotal += parseFloat(document.shop.M_pay.value);

	if (document.shop.page_cost)
		{subtotal += parseFloat(document.shop.page_cost.value);}

	if ((subtotal) > 0 && (subtotal < 10))
		{document.shop.M_hnd.value = 0.5;}
	else
		{document.shop.M_hnd.value = 0.0;}
	subtotal += parseFloat(document.shop.M_hnd.value);

	document.shop.cost.value = decimal(subtotal);
	document.shop.M_hnd.value = decimal(document.shop.M_hnd.value);

	if (document.shop.buddy_list)
		{
		var spend = document.shop.cost.value - document.shop.M_buddy_cost.value;
		if (spend != spent)
			{buddies_cost();}
		}

	if (document.shop.cost.value > 0)
		{document.shop.submit.value = 'Add Items to Trolley >';}
	else
		{document.shop.submit.value = 'View Trolley >';}
	}

function pages_cost()
	{
	var page_list = document.shop.page_list.value;
	var ticked = 0;
	var sel = '';

	var page_array = page_list.split(',');

	for (var page in page_array)
		{
		if (document.shop['page_' + page_array[page]].checked)
			{
			ticked++;
			if (sel != '')
				{sel = sel + ',';}
			sel = sel + page_array[page];
			}
		}

	var breaks = new Array;
	breaks[ 1] = 5;
	breaks[ 3] = 10;
	breaks[ 5] = 15;
	breaks[10] = 25;

	var cost = 0;

	var break_array = '10,5,3,1'.split(',');

	var t = ticked;
	for (var brk in break_array)
		{
		while (t >= break_array[brk])
			{
			t -= break_array[brk];
			cost += breaks[break_array[brk]];
			}
		}

	document.shop.M_pagelist.value = sel;
	document.shop.M_rxp_qty.value = cost + ':' + ticked;
	document.shop.page_cost.value = decimal(cost);
	calc();
	}

function buddies_cost()
	{
	var spent = document.shop.cost.value - document.shop.M_buddy_cost.value;

	var buddy_list = document.shop.buddy_list.value;
	var ticked = 0;
	var sel = '';

	var buddy_array = buddy_list.split(',');

	for (var buddy in buddy_array)
		{
		if (document.shop['buddy_' + buddy_array[buddy]].checked)
			{
			ticked++;
			if (sel != '')
				{sel = sel + ',';}
			sel = sel + buddy_array[buddy];
			}
		}

	var cost = 1;
	if (spent < 10)
		{cost = 2;}

	document.shop.M_buddylist.value = sel;
	document.shop.M_buddy_qty.value = cost + ':' + ticked;
	document.shop.M_buddy_cost.value = decimal(cost * ticked);
	calc();
	}			