function getPreis(element){
    var arrPreise = new Array();
    var i,strTemp,temp,j;
    strRexExMatch=new RegExp("(-?[0-9\\"+strNumberBreakChar+"]+\\"+strDezimalChar+"[0-9]{2})", "g");
    strRexExReplace1=new RegExp("\\"+strNumberBreakChar);
    strRexExReplace2=new RegExp("\\"+strDezimalChar);
    arrPreise=element.innerHTML.match(strRexExMatch);
    for (i = 0; i < arrPreise.length; i++){
        arrPreise[i]=String(arrPreise[i]).replace(strRexExReplace1,'').replace(strRexExReplace2,'.');
    }
//    if (!element.childNodes) return arrPreise;
//    for(i=0;i<element.childNodes.length;i++){
        // Textknoten
//        if (element.childNodes[i].nodeType==3){
//            strTemp=element.childNodes[i].nodeValue.match(strRexExMatch);
//            if (strTemp && strTemp!='') arrPreise[arrPreise.length]=String(strTemp).replace(strRexExReplace1,'').replace(strRexExReplace2,'.');
//        }
//        // Elementknoten
//        if (element.childNodes[i].nodeType==1){
//            temp=getPreis(element.childNodes[i]);
//            for (j=0;j<temp.length;j++){
//                arrPreise[arrPreise.length]=temp[j];
//            }
//        }
//    }
    return arrPreise;
}
function setPreis(arrPreis,element){
    var i,strTemp,temp,j;
    if (element.childNodes){
        for(i=0;i<element.childNodes.length;i++){
            // Textknoten
            if (element.childNodes[i].nodeType==3){
                if (element.childNodes[i].nodeValue.search(/-?[0-9.]+,[0-9]{2}/)>=0){
                    element.childNodes[i].nodeValue=element.childNodes[i].nodeValue.replace(/-?[0-9.]+,[0-9]{2}/,number_format(arrPreis[0]));
                    for (j=0;j<arrPreis.length-1;j++){
                        arrPreis[j]=arrPreis[j+1];
                    }
                }
            }
            // Elementknoten
            if (element.childNodes[i].nodeType==1){
                arrPreis=setPreis(arrPreis,element.childNodes[i]);
            }
        }
    }
    return arrPreis;
}
function manRound(x) {
  var k = (Math.round(x * 100) / 100).toString();
  k += (k.indexOf('.') == -1)? '.00' : '00';
  return k.substring(0, k.indexOf('.') + 3);
}

function addPreis(strValue,strTyp,intIndex){
    var i;
    var arrPreis = new Array();
    if (!arrOptionValues[intIndex]) arrOptionValues[intIndex]=0;
    if (strTyp=='select'){
        intValue=strValue.options[strValue.selectedIndex].getAttribute('preis');
        strValue=strValue.options[strValue.selectedIndex].innerHTML;
        strValue=strValue.substring(strValue.lastIndexOf('('),strValue.lastIndexOf(')'));
        Ausdruck = new RegExp("(-?[0-9\\"+strNumberBreakChar+"]+\\"+strDezimalChar+"[0-9]{2})");
        Ausdruck.exec(strValue);
        strValue=RegExp.$1;
    }
    else{
        intValue=Number(String(strValue).replace(/[^0-9.-]/g,'.'));
    }
    if (isNaN(intValue)) intValue=0;
    // berechnet den relativen aufpreis 
    intTemp=intValue-arrOptionValues[intIndex];
    // absoluter aufpreis wird gespeichert
    arrOptionValues[intIndex]=intValue;
    intValue=intTemp;
    // holt die preise aus der htmldatei
    arrPreis=getPreis(document.getElementById('divPreis'));
    for (i=0;i<arrPreis.length;i++){
        arrPreis[i]=manRound(Number(arrPreis[i])+intValue);
    }
    
    setPreis(arrPreis,document.getElementById('divPreis'));
}
function number_format(intZahl){
    var strTemp  
    var arrZahl=String(intZahl).split('.');
    if (!arrZahl[0]) arrZahl[0]='0';
    if (!arrZahl[1]) arrZahl[1]='00';
    if (String(arrZahl[1]).length==1)arrZahl[1]=String(arrZahl[1])+'0';
    if (String(arrZahl[1]).length>2)arrZahl[1]=String(arrZahl[1]).substr(0,2);
    if (String(arrZahl[0]).length>3){
        strTemp=String(arrZahl[0]).substr(String(arrZahl[0]).length-3,3);
        for (var i=String(arrZahl[0]).length-3;i>=0;i-=3){
            j=i-3;
            if(j<0)j=0;
            strTemp=String(arrZahl[0]).substring(j,i)+'.'+strTemp;
        }
        arrZahl[0]=strTemp;
    }
    return arrZahl.join(strDezimalChar);
}

