// JavaScript 
var numRows = 4;
var priceArray = new Array ( numRows );
priceArray[0] = 39.99;
priceArray[1] = 39.99;
priceArray[2] = 39.99;
priceArray[3] = 39.99;
var ship_one = 9.95;
var ship_multi = 9.95;
var sumQty = 0;
var sumshipping = 0;

function writeToDiv(divID,text){
    document.getElementById(divID).innerHTML = text;
}


/* USAGE:
 * <form>
 *  <input type="text" onkeyup="format(this)" onchange="format(this)"
 *  onblur="if(this.value.indexOf('.')==-1)this.value=this.value+'.00'">
 * </form>
 */
function format(input){
  var num = input.value.replace(/\,/g,'');
   if(!isNaN(num)){
     if(num.indexOf('.') > -1){
        num = num.split('.');
        num[0] = num[0].toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1,').split('').reverse().join('').replace(/^[\,]/,'');
       if(num[1].length > 2){
          alert('You may only enter two decimals!');
          num[1] = num[1].substring(0,num[1].length-1);
       }  input.value = num[0]+'.'+num[1];        
     } else{ input.value = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1,').split('').reverse().join('').replace(/^[\,]/,'') };
   }
   else{ 
         input.value = '';
   }
}

function formatzip(input){
  var len = parseInt(input.value.length);
  var num = input.value.replace(/\,/g,'');
   if(!isNaN(num)){
     if(num.indexOf('.') > -1){
        num = num.split('.');
        num[0] = num[0].toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1').split('').reverse().join('').replace(/^[]/,'');
     } else{ 
	  if(len > 5) {
	  	input.value = num.substring(0,5);
	  }
	  else {
	  	input.value = num.toString().split('').reverse().join('').replace(/(?=\d*\.?)(\d{3})/g,'$1').split('').reverse().join('').replace(/^[]/,'') };
	 }
   }
   else{ 
         input.value = '';
   }
}

function updatezip(input){
	var tzip = input.value;
	var len = parseInt(tzip.length);
}

<!-- Original:  Cyanide_7 (leo7278@hotmail.com) -->
<!-- Web Site:  http://www7.ewebcity.com/cyanide7 -->
<!-- This script and many more are available free online at -->
<!-- The JavaScript Source!! http://javascript.internet.com -->
function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
      num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
      cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
      num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
    return (((sign)?'':'-') + '$' + num + '.' + cents);
}
	  
function getSelectedPrice(i) { //v3.0
 return(priceArray[i-1]);
}

function getSelectedQty(i) { //v3.0
 var theQty=parseInt(eval('document.addMultiItems.qty'+i+'.value'));
 return(theQty);
}

function setSelectedQty(i,q) { //v3.0
 var qField=eval('document.addMultiItems.qty'+i);
 qField.value=q;
}

function setSelectedExtPrice(i,p) { //v3.0
 var xpriceField=eval('document.getElementById(\'extPrice'+i+'\')');
 xpriceField.innerHTML=formatCurrency(p);
 // writeToDiv( 'extPrice' + i, p );
}

function totalQty() { //v3.0
 var sum=0;
 for(r=1; r<=numRows; r++) { 
 	q=getSelectedQty(r);
	if( !isNaN(q) ) sum += parseInt(getSelectedQty(r)); 
 }
 sumQty = sum;
 return(sum);
}

function setTotalQty(q) { //v3.0
 var subQtyField=eval('document.getElementById(\'subQty\')');
 subQtyField.innerHTML=q;
 // writeToDiv( 'subQty', q );
}

function totalPrice(sumshipping) { //v3.0
 var sum=0.0;
 for(r=1; r<=numRows; r++) {
 p = parseFloat(getSelectedPrice(r));
  if( !isNaN(p) ) {
   var q=getSelectedQty(r);
   if( !isNaN(q) ) sum += p*q;
  }
 }
// alert( "total price: sum(" + sum + ") + shipping(" + sumshipping + "):
 sumtotal = sum + sumshipping;
 return(sumtotal);
}

function setTotalPrice(q) { //v3.0
 var subtotalField=eval('document.getElementById(\'subtotal\')');
 subtotalField.innerHTML=formatCurrency(q);
 // writeToDiv( 'subtotal', q );

}

function totalShipping() { //v3.0
 var sum=0.0;
 sum = sumQty * ship_one;
 sumshipping = sum;
 return(sum);
}

function setTotalShipping(q) { //v3.0
 var shippingField=eval('document.getElementById(\'shipping\')');
 shippingField.innerHTML=formatCurrency(q);
 // writeToDiv( 'subtotal', q );

}

function updateQty(i) { //v3.0
// get the new qty_i, get the price_i, mult together and display as innerHTML of extprice_i and update subtotal,totalQty
var p=parseFloat(getSelectedPrice(i));
if(isNaN(p)) return;
var q=getSelectedQty(i);
if(isNaN(q)) q=0;
var x=p*q;
 setSelectedExtPrice(i,x);
 var tq=totalQty();
 setTotalQty(tq);
// var ts=totalShipping();
// setTotalShipping(ts);
// var tp=totalPrice(ts);
 var tp=totalPrice(0);
 setTotalPrice(tp);
}

function resetFields() { //v3.0
 for( r=1; r<=numRows; r++ ) {
  setSelectedQty(r,0);
  setSelectedExtPrice(r,0);
  setTotalQty(0);
//  setTotalShipping(0);
  setTotalPrice(0);
 }
}