function FormatNumber(expr, decplaces) 
{
	var str = "" + Math.round(eval(expr) * Math.pow(10,decplaces));

	while (str.length <= decplaces) {
		str = "0" + str;
	}
	var decpoint = str.length - decplaces;
	return str.substring(0,decpoint) + "." + str.substring(decpoint, str.length);
}

function addEvent(elm, evType, fn, useCapture)
{
	if (elm.addEventListener)
	{
		elm.addEventListener(evType,fn,useCapture);
		return (true);
	}
	else if ( elm.attachEvent )
	{
		var r = elm.attachEvent('on' + evType, fn);
		return (r);
	}
	else
	{
		elm['on' + evType] = fn;
	}
}

var frmOrderForm = null;

function setOptionPrice()
{
	if (frmOrderForm && typeof(itemPrice) != 'undefined')
	{
		var totalPrice = itemPrice;
		for (var i = 0; i < frmOrderForm.elements.length; i++)
		{
			if (frmOrderForm.elements[i].type.toLowerCase() == 'select-one')
			{
				var val = frmOrderForm.elements[i].options[frmOrderForm.elements[i].selectedIndex].value;
				var optRe = /\(([\d\s\+\-\.\$]+)\)/;
				var matches = optRe.exec(val);
				if (matches)
				{
					var addOn = eval(matches[1].replace("$","").replace(",","").replace(" ",""));
					if (addOn && !isNaN(addOn))
					{
						totalPrice += addOn;
					}
				}
			}
		}
		var tp = document.getElementById("totalPrice");
		if (tp)
		{
			tp.innerHTML = "<font face=arial size=2><b>Price with selected options: $" + FormatNumber(totalPrice,2) + "</b></font>";
			tp.style.display = "block";
		}
	}
}

function setOptionPriceHandler()
{
	for (i = 0; i < document.forms.length; i++)
	{
		if (document.forms[i].action.match("order.store.yahoo") || document.forms[i].action.match("test-order"))
		{
			frmOrderForm = document.forms[i];
			break;
		}
	}
	if (frmOrderForm)
	{
		for (i=0; i<frmOrderForm.elements.length; i++)
		{
			if (frmOrderForm.elements[i].type.toLowerCase() == 'select-one')
			{
				addEvent(frmOrderForm.elements[i],'change',setOptionPrice);
			}
		}
	}
}
addEvent(window, 'load', setOptionPriceHandler);

