function recalulateTotal(){
 
	var fieldId;
	var valueField;
	var arrayOfPrices;
	var addPrice = 0;
	var temp;
	
		
	var thisFormFields = document.forms["cart_quantity"].elements;
	
	var allOptionFields =new Array();
 
  	for (var i = 0; i < thisFormFields.length; i++) {
 
		if( thisFormFields[i].name.search(/id\[/) > -1 ){
			fieldId = thisFormFields[i].name.match(/\d+/); 
			valueField = document.forms["cart_quantity"].elements["select_" + fieldId];
 
			arrayOfPrices = valueField.value.split(';')
			
			selectedValue = thisFormFields[i].value;
			
  			for (var j = 0; j < arrayOfPrices.length; j++) {
  				temp = arrayOfPrices[j].split('/');
  				if( temp[0] == selectedValue ){
  					addPrice += parseFloat(temp[1]);
  				}
  			}
		}
	}
   			
	var initialValue = document.forms["cart_quantity"].elements["startPrice"].value;
	var initialSpecialValue = document.forms["cart_quantity"].elements["startPriceSpecial"].value;
	
	var newTotalValue = symbol_left + number_format(parseFloat(initialValue) + parseFloat(addPrice),parseInt(decimal_places),decimal_point,thousands_point) + symbol_right;
	var newSpecialValue = symbol_left + number_format(parseFloat(initialSpecialValue) + parseFloat(addPrice),parseInt(decimal_places),decimal_point,thousands_point) + symbol_right;
	
	changeContent('totalValue',newTotalValue);
	changeContent('specialValue',newSpecialValue);
}
 
function changeContent(id,shtml) {
   if (document.getElementById || document.all) {
      var el = document.getElementById? document.getElementById(id): document.all[id];
      if (el && typeof el.innerHTML != "undefined") el.innerHTML = shtml;
   }
}
 
function /*out: String*/ number_format( /* in: float   */ number,
                                        /* in: integer */ laenge,
                                        /* in: String  */ sep,
                                        /* in: String  */ th_sep ) {

  number = Math.round( number * Math.pow(10, laenge) ) / Math.pow(10, laenge);
  str_number = number+"";
  arr_int = str_number.split(".");
  if(!arr_int[0]) arr_int[0] = "0";
  if(!arr_int[1]) arr_int[1] = "";
  if(arr_int[1].length < laenge){
    nachkomma = arr_int[1];
    for(i=arr_int[1].length+1; i <= laenge; i++){  nachkomma += "0";  }
    arr_int[1] = nachkomma;
  }
  if(th_sep != "" && arr_int[0].length > 3){
    Begriff = arr_int[0];
    arr_int[0] = "";
    for(j = 3; j < Begriff.length ; j+=3){
      Extrakt = Begriff.slice(Begriff.length - j, Begriff.length - j + 3);
      arr_int[0] = th_sep + Extrakt +  arr_int[0] + "";
    }
    str_first = Begriff.substr(0, (Begriff.length % 3 == 0)?3:(Begriff.length % 3));
    arr_int[0] = str_first + arr_int[0];
  }
  return arr_int[0]+sep+arr_int[1];
}
