// Dynamic Price Changer for CCP51
// Rachael Katz 03-01-2006

function updatePrice() {
var f="NO_OPTIONS";
// Find if we have a form with options
for (var i=0; i < document.forms.length; i++) {
  if (document.forms[i].optionfields) {
    f = i;
  } // End of if
} //end of for
// Only run sript if we have options
if (f != "NO_OPTIONS") {
  optionfieldsarray = eval('document.forms[' + f + '].optionfields.value.split("|")');
  baseregprice=document.forms[f].origregprice.value;
  var pricechange=0;
  for (var i=0; i < (optionfieldsarray.length); i=i+2) {
    if (optionfieldsarray[i+1] == 'SELECT' || optionfieldsarray[i+1] == 'SELECT-MULT') {
      fieldname = optionfieldsarray[i] + "\"][\"options";
      qualifier = "selected";
    } else {
      fieldname = optionfieldsarray[i];
      qualifier = "checked";
    } // End of if 
    if (eval('document.forms[' + f + '][\"' + fieldname + '\"][0]')) {    
      for (j=0;j<eval('document.forms[' + f + '][\"' + fieldname + '\"].length');j++) {
        if (eval('document.forms[' + f + '][\"' + fieldname + '\"][' + j + '].' + qualifier)) {
          optarray = eval('document.forms[' + f + '][\"' + fieldname + '\"][' + j + '].value.split("|")');
          if (optarray[2] == 'D') {          
            pricechange = pricechange - parseFloat(optarray[3]);
          } else if (optarray[2] == 'I') {
            pricechange = pricechange + parseFloat(optarray[3]);
          } // End of if
        } // End of if 
      } // End of for
    } else { 
      if (eval('document.forms[' + f + '][\"' + fieldname + '\"].' + qualifier)) {
        optarray = eval('document.forms[' + f + '][\"' + fieldname + '\"].value.split("|")');
        if (optarray[2] == 'D') {          
          pricechange = pricechange - parseFloat(optarray[3]);
        } else if (optarray[2] == 'I') {
          pricechange = pricechange + parseFloat(optarray[3]);
        } // End of if
      } // End of if 
    } // End of if
  } // End of for loop
  regprice = parseFloat(baseregprice) + pricechange;
  // Handle sub-zero prices
  if (regprice < 0) { 
    regprice = 0; 
  } // End of if
  // Fix decimal places
  regprice = regprice.toFixed(2);
  // Update Regular Price
  if (document.getElementById) {
    document.getElementById("price_reg").innerHTML = regprice;
  } else if (document.all) {
    document.forms[f].price_reg.innerHTML = regprice;
  } // End of if
  // Update Sale Price if it Exists
  if (document.forms[f].origsaleprice) {
    basesaleprice=document.forms[f].origsaleprice.value;
    saleprice = parseFloat(basesaleprice) + pricechange;
    // Handle sub-zero prices
    if (saleprice < 0) { 
      saleprice = 0; 
    } // End of if
    // Fix decimal places
    saleprice = saleprice.toFixed(2);
    // Update Span Tag
    if (document.getElementById) {
      document.getElementById("price_sale").innerHTML = saleprice;
    } else if (document.all) {
      document.forms[f].price_sale.innerHTML = saleprice;
    } // End of if
  } // End of if
} // End of if
} // End of script
