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);
}

var frmOrderForm = null;
var totalPrice = 1;

function setOptionPrice()
{
	if (frmOrderForm && typeof(itemPrice) != 'undefined')
	{
		totalPrice = itemPrice;
		var wdCnt = 0;
		
		//Set Price per word to $10 unless otherwise defined on the html page
		if (typeof(wordPrice) == 'undefined') {
			var wordPrice = 10;
		}
		
		var Cbox = 200;		//A number that will always bet out of the i range
		//var allElements ="";	//Debug only
		for (var i = 0; i < frmOrderForm.elements.length; i++)
		{
			//allElements += frmOrderForm.elements[i].type.toLowerCase() + "=type<br/>" + frmOrderForm.elements[i].name.toLowerCase() + "=name<br/>"; //Debug only
			//allElements += frmOrderForm.elements[i].value + "=value<br/><br/>"+Cbox+"=Cbox<br/><br/>"; //Debug only
			
			if (frmOrderForm.elements[i].type.toLowerCase() == 'select-one' || frmOrderForm.elements[i].type.toLowerCase() == 'checkbox')
			{
				var val;
				var totPatt = /total.*of.*letters.*/i;	//the regex pattern to weed out the seletion of number of letters
				var naPatt = /N\/A/i;
				var colPatt = /color/i;

				//Modifying the following block to ignore select list for total number of letter.  The lower section will count the actual label text instead
				if (frmOrderForm.elements[i].type.toLowerCase() == 'select-one') {
					if (totPatt.test(frmOrderForm.elements[i].name)) {
						if (wdCnt !=0) {
							frmOrderForm.elements[i].selectedIndex = wdCnt-1;
							//allElements +="("+i+") Stepping into total of letters<br/>"; //Debug only
						}
					} else if ((Cbox != 200) && !(naPatt.test(frmOrderForm.elements[i].value))&&(colPatt.test(frmOrderForm.elements[i].name))) {
						val = frmOrderForm.elements[Cbox].value;
						frmOrderForm.elements[Cbox].checked = true;
						Cbox = 200;
						//allElements += "***Sending Checkbox Value: " + val + "***<br/>";	//Debug only
					} else {
						val = frmOrderForm.elements[i].options[frmOrderForm.elements[i].selectedIndex].value;
					}
				} else if (frmOrderForm.elements[i].type.toLowerCase() == 'checkbox') {
					if (frmOrderForm.elements[i].checked) {
						val = frmOrderForm.elements[i].value;
						//allElements += frmOrderForm.elements[i].checked + "=checked<br/>";		//Debug only
					} else {
						Cbox = i;
						val = "";
						//allElements += "***Stepping into no check Checkbox. i= " + i + "***<br/>";	//Debug only
						//allElements += frmOrderForm.elements[i].checked + "=checked<br/>";		//Debug only
					}
				} else {
					val = "";
				}
				var optRe = /\(([\d\s\+\-\.\$]+)\)/;
				var matches = optRe.exec(val);
				if (matches)
				{
					//allElements += matches[1] + ",<br/>";		//Debug only
					var addOn = eval(matches[1].replace("$","").replace(",","").replace(" ",""));
					if (addOn && !isNaN(addOn))
					{
						//allElements += addOn + ",<br/>";	//Debug only
						totalPrice += addOn;
					}
				}
			}
			
			//This section will actually count the number of letters in the line one and line two text fields (it ignores the vwquantity field)
			if ((frmOrderForm.elements[i].type.toLowerCase() == 'text') && (frmOrderForm.elements[i].name.toLowerCase() != 'vwquantity')) {
				

				var out = frmOrderForm.elements[i].value.replace(/\s/g, '');
				wdCnt += out.length;
							
				totalPrice += out.length * wordPrice;
				
				//allElements += "("+i+")"+frmOrderForm.elements[i].value + "<br/>"+out+"<br/>"+wdCnt+"<br/>";	//Debug only

						
			}
		}
		
		
		//Debug Section
		//Add this section to the html page if you use this section: <div id=Elements></div>
		//var test = document.getElementById("Elements");
		//test.innerHTML = "<em><br/>"+allElements+"<br/>"+totalPrice+"<br/></em>";
		//test.style.display = "block";
		//End Debug Section

		
		var tp = document.getElementById("totalPrice");
		if (tp)
		{
		    if (totalPrice == 0)
		        tp.style.display = "none";
		    else
		    {
			    tp.innerHTML = "<font face=arial size=2 color=\"red\"><b>Price with selected options: <span id=priceAmount>$" + FormatNumber(totalPrice,2) + "</span></b></font>";
			    tp.style.display = "block";
			}
		}
	}
	return(true);
}

function setOptionPriceHandler()
{
    frmOrderForm = jQuery("form[action*='order.store.yahoo']");
    if (frmOrderForm.length == 0)
        frmOrderForm = jQuery("form[action*='test-order']");
    if (frmOrderForm.length > 0)
        frmOrderForm = frmOrderForm[0];
    else
        frmOrderForm = null;

	if (frmOrderForm)
	{
	    jQuery(frmOrderForm).find("input[type=checkbox]").click(setOptionPrice);
	    jQuery(frmOrderForm).find("select").change(setOptionPrice);
	    jQuery(frmOrderForm).find("input[type=text]").keyup(setOptionPrice);
	    
	    jQuery(frmOrderForm).submit( function() {
	        setOptionPrice();
	        if (totalPrice == 0)
	        {
	            alert("Please select at least one option.");
	            return(false);
	        }
	    }
	    );
	}
}
jQuery(document).ready( setOptionPriceHandler );
