
function changeable_text(name,text) {
    document.write("<div id='"+name+"'>"+text+"</div>");
}
function change_text(name,text) {
    var e = document.getElementById(name);
    if(e)e.innerHTML = text;
}

function totalizer() {
   this.add = totalizer_add;
   //this.total = totalizer_total;
   this.names = new Array();
   this.prices = new Array(); 
}
function totalizer_add(name,price_in_cents) {
   this.names[this.names.length]=name;
   this.prices[this.prices.length]=price_in_cents;
   //alert("added "+name);
}



order_total = new totalizer();
function product_total(product,value,price_in_cents) {
   order_total.add(product,price_in_cents);
   //document.write("changeable text");
   changeable_text(product+"_total",value);
}
function calc(field,price_in_cents) {
    var qty = field.value;
    //if(typeof qty != "number" ) qty=0;
    change_text(field.name+"_total","$"+format_number(qty*price_in_cents/100,2));
    //order_total.total(); 
}
function order_total_field(value) {
    changeable_text("order_total",value);
}

function format_number(p,d) 
{
  var r;
  if(p<0){r="-"+format_number2(-p,d);}
  else   {r=format_number2(p,d);}
  return r;
}

function format_number2(pnumber,decimals) 
{
  var strNumber = new String(pnumber);
  var arrParts = strNumber.split('.');
  var intWholePart = parseInt(arrParts[0],10);
  var strResult = '';
  if (isNaN(intWholePart))
    intWholePart = '0';
  if(arrParts.length > 1)
  {
    var decDecimalPart = new String(arrParts[1]);
    var i = 0;
    var intZeroCount = 0;
     while ( i < String(arrParts[1]).length )
     {
       if( parseInt(String(arrParts[1]).charAt(i),10) == 0 )
       {
         intZeroCount += 1;
         i += 1;
       }
       else
         break;
    }
    decDecimalPart = parseInt(decDecimalPart,10)/Math.pow(10,parseInt(decDecimalPart.length-decimals-1)); 
    Math.round(decDecimalPart); 
    decDecimalPart = parseInt(decDecimalPart)/10; 
    decDecimalPart = Math.round(decDecimalPart); 

    //If the number was rounded up from 9 to 10, and it was for 1 'decimal' 
    //then we need to add 1 to the 'intWholePart' and set the decDecimalPart to 0. 

    if(decDecimalPart==Math.pow(10, parseInt(decimals)))
    { 
      intWholePart+=1; 
      decDecimalPart="0"; 
    } 
    var stringOfZeros = new String('');
    i=0;
    if( decDecimalPart > 0 )
    {
      while( i < intZeroCount)
      {
        stringOfZeros += '0';
        i += 1;
      }
    }
    decDecimalPart = String(intWholePart) + "." + stringOfZeros + String(decDecimalPart); 
    var dot = decDecimalPart.indexOf('.');
    if(dot == -1)
    {
      decDecimalPart += '.'; 
      dot = decDecimalPart.indexOf('.'); 
    } 
    var l=parseInt(dot)+parseInt(decimals); 
    while(decDecimalPart.length <= l) 
    {
      decDecimalPart += '0'; 
    }
    strResult = decDecimalPart;
  }
  else
  {
    var dot; 
    var decDecimalPart = new String(intWholePart); 

    decDecimalPart += '.'; 
    dot = decDecimalPart.indexOf('.'); 
    var l=parseInt(dot)+parseInt(decimals); 
    while(decDecimalPart.length <= l) 
    {
      decDecimalPart += '0'; 
    }
    strResult = decDecimalPart;
  }
  return strResult;
}
