Number.prototype.formatMoney = function(c, d, t){
    var n = this, c = isNaN(c = Math.abs(c)) ? 2 : c, d = d == undefined ? "," : d, t = t == undefined ? "." : t, s = n < 0 ? "-" : "",
    i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t)
    + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
};

  jQuery(document).ready(function(){
     jQuery('form[@id^=orderform-]').each(function(index){
        addRecalc(jQuery(this));
     })
  });
  
  function addRecalc(currForm) {

<!--     jQuery('input:radio').not(jQuery('input:radio[@name^=vw]')).each(function(index) { -->
<!--        alert(jQuery(this).val()); -->
<!--     }) -->
     jQuery('input:checkbox:not([@name^=vw])',currForm).click(function() {
       var formID = jQuery(this).parents('form').attr('id').substring(10);
       reCalc(formID); 
     })

     jQuery('input:radio:not([@name^=vw])',currForm).click(function() {
       var formID = jQuery(this).parents('form').attr('id').substring(10);
       reCalc(formID); 
     })

     jQuery('select',currForm).change(function() {
       var formID = jQuery(this).parents('form').attr('id').substring(10);
       reCalc(formID); 
     })

     jQuery('input:text',currForm).keyup(function() {
       var formID = jQuery(this).parents('form').attr('id').substring(10);
       reCalc(formID); 
     })
  }

  function calcBasePrice(prices, qty) {
    var priceArray = prices.split(' ');
    var answer;
    answer = priceArray[0] * 1;
    if (qty > 1) {
      var arrayLen = priceArray.length;
      arraylen = (arrayLen - 1) / 2;
      for (i=0;i<arrayLen;i++) {
         var priceQty = (i * 2) + 1;
         if (priceArray[priceQty] <= qty) {
            answer = priceArray[priceQty + 1] / priceArray[priceQty];
         }  
      }

    }
    return answer;
  }

  function reCalc(id) {
     var diff=0;
     var qty=1;
     var re = /\([-+].*\)/i;
     jQuery('input:radio:checked:not([@name^=vw])','form#orderform-' + id).each(function(index){
        var myval = jQuery(this).val();
        var answer = myval.replace(myval.replace(re,''),'').replace(/\(+/i,'').replace(/\)/i,'').replace(/\$/i,'');
        diff += answer * 1;
     });
     jQuery('input:checkbox:checked:not([@name^=vw])','form#orderform-' + id).each(function(index){
        var myval = jQuery(this).val();
        var answer = myval.replace(myval.replace(re,''),'').replace(/\(+/i,'').replace(/\)/i,'').replace(/\$/i,'');
        diff += answer * 1;
     });
     jQuery('select option:selected:not([@name^=vw])','form#orderform-' + id).each(function(index){
        var myval = jQuery(this).val();
        var answer = myval.replace(myval.replace(re,''),'').replace(/\(+/i,'').replace(/\)/i,'').replace(/\$/i,'');
        diff += answer * 1;
     });
     jQuery('input:text:not([@name^=vw])','form#orderform-' + id).each(function(index){
        if (jQuery(this).attr('rel')) {
           if (jQuery(this).val() != '') diff += jQuery(this).attr('rel') * 1;
        }
     });
     jQuery('select[@name=vwquantity] option:selected','form#orderform-' + id).each(function(index){
        var answer = jQuery(this).val();
        if (answer != '') {
           qty = answer * 1;
        }
     });
     jQuery('input:text[@name=vwquantity]','form#orderform-' + id).each(function(index){
        var answer = jQuery(this).val();
        if (answer != '') {
           qty = answer * 1;
        }
     });
     diff = Math.round(diff * 100) / 100;
     var basePricing = jQuery('span#price-' + id).attr('rel');
     var basePrice = calcBasePrice(basePricing, qty);
     var newPrice = Math.round((basePrice * 1 + diff) * 100) / 100;
     jQuery('span#price-' + id).html("$" + newPrice.formatMoney(2,'.',','));
  }

