
  function round(z){
    t = z;
    t = Math.round(t * 100) / 100 + '';
    s = t.indexOf(".");
    if (s == -1) 
      t = t + '.00';
    else {
      pos1 = t.length;
      pos2 = t.indexOf(".");
      if (pos1 * 1 - pos2 * 1 == 2) 
        t = t + '0'; }
    r = t;
    s1 = r.indexOf(".");
    s2 = r.indexOf("-");
    if (s1 == 0) {
      r = '0'+r; }
    if (s2 == 0 && s1 == 1) {
      r = r.substr(2,r.length);
      r = '-0.' + r; }
    return r;
  }

  function JSBasket() {
    this.shippingidx = 2;
    
    this.idx              = new Array();
    this.amount           = new Array();
    this.name             = new Array();
    this.no               = new Array();
    this.itemprice        = new Array();   // unrabattiert
    this.itemprice2       = new Array();   // unrabattiert
    this.weight           = new Array();
    this.variants         = new Array();
    this.itemtext         = new Array();   
    this.itemdiscount     = new Array();
    this.price            = new Array();
    this.price2           = new Array();
    this.tax              = new Array();
    this.total            = new Array();
    this.total2           = new Array();

    this.mjk_discountgroup    = new Array();

    this.poscount = poscount;
    this.allcount = allcount;
    this.totalweight = totalweight;    
    this.sum = sum;
    this.sum2 = sum2;
    
    this.w_discount = w_discount;
    this.p_discount = p_discount;
    this.a_discount = a_discount;        
    this.t_discount = t_discount;
    this.mjk_c_discount = mjk_c_discount;
    this.w_discount2 = w_discount2;
    this.p_discount2 = p_discount2;
    this.a_discount2 = a_discount2;        
    this.t_discount2 = t_discount2;
    this.mjk_c_discount2 = mjk_c_discount2;
    this.t_d_percent = t_d_percent;
    
    this.w_dispatch = w_dispatch;
    this.p_dispatch = p_dispatch;
    this.a_dispatch = a_dispatch;
    this.t_dispatch = t_dispatch;  

    this.w_dispatch2 = w_dispatch2;
    this.p_dispatch2 = p_dispatch2;
    this.a_dispatch2 = a_dispatch2;
    this.t_dispatch2 = t_dispatch2;  

    this.shipping_mjk = shipping_mjk;
    this.shipping_mjk2 = shipping_mjk2;

    this.topay = topay;
    this.topay2 = topay2;
}
 
  function poscount() {
    temp = 0;
    for (i=0;i<this.idx.length;i++) {
      if (parseInt(this.amount[i]) > 0) {
        temp = temp + 1;
      }
    }
    return temp;      
  }
  
  function allcount() {
    temp = 0;
    for (i=0;i<this.idx.length;i++) {
      if (parseInt(this.amount[i]) > 0) {
        temp = parseInt(temp) + parseInt(this.amount[i]);
      }
    }
    return temp;  
  }
  
  function totalweight() {
    temp = 0;
    for (i=0;i<this.idx.length;i++) {
      if (parseInt(this.amount[i]) > 0) {
        temp = parseFloat(temp) + (parseInt(this.amount[i]) * parseFloat(this.weight[i]));
      }
    }
    return temp;
  }
  function sum() {
    temp = 0.00;
    for(i=0;i<this.idx.length;i++) {
      temp = parseFloat(temp) + parseFloat(this.total[i]); }
    return round(temp);  
  }

  function sum2() {
    temp2 = 0.00;
    for(ii=0;ii<this.idx.length;ii++) {
      temp2 = parseFloat(temp2) + parseFloat(this.total2[ii]); }
    return round(temp2);  
  }
  
  function w_discount() {
    wtemp  = 0.00;
    wresult = 0.00;    
    for(wd=0;wd<weight_discount.length;wd++) {
      if(parseFloat(this.totalweight()) >= parseFloat(weight_discount[wd]['From'])) {
        wtemp = weight_discount[wd]['Percent'];
      }
    }
    wresult = (parseFloat(this.sum()) / 100.00) * parseFloat(wtemp);
    return wresult;
  }
  
  function p_discount() {
    ptemp  = 0.00;
    presult = 0.00;    
    for(pd=0;pd<price_discount.length;pd++) {
      if(parseFloat(this.sum()) >= parseFloat(price_discount[pd]['From'])) {
        ptemp = price_discount[pd]['Percent'];
      }
    }
    presult = (parseFloat(this.sum()) / 100.00) * parseFloat(ptemp);
    return presult;
  }

  function mjk_c_discount() {
    if (( globaldata['couponpc'] > 0.0 ) && ( this.sum() >= globaldata['couponmin'] ) )  {
      aresult = (parseFloat(this.sum()) / 100.00) * (parseFloat(globaldata['couponpc']) -0.01);
    } else if (( globaldata['couponv'] > 0.0 ) && ( globaldata['couponmin'] == 0.0 ) ) {
      aresult = globaldata['couponv'];
    } else if (( globaldata['couponv'] > 0.0 ) && ( this.sum() >= globaldata['couponmin'] ) ) {
      aresult = globaldata['couponv'];
    } else {
      aresult = 0.0;
    }
    return aresult;
  }    
  
  function t_discount() {
    tresult = parseFloat(this.w_discount()) +  parseFloat(this.p_discount()) + parseFloat(this.a_discount()) + parseFloat(this.mjk_c_discount());
    return round(tresult);
  }

  function w_discount2() {
    wtemp  = 0.00;
    wresult = 0.00;    
    for(wd=0;wd<weight_discount.length;wd++) {
      if(parseFloat(this.totalweight()) >= parseFloat(weight_discount[wd]['From'])) {
        wtemp = weight_discount[wd]['Percent'];
      }
    }
    wresult = (parseFloat(this.sum2()) / 100.00) * parseFloat(wtemp);
    return wresult;
  }
  
  function p_discount2() {
    ptemp  = 0.00;
    presult = 0.00;    
    for(pd=0;pd<price_discount.length;pd++) {
      if(parseFloat(this.sum()) >= parseFloat(price_discount[pd]['From'])) {
        ptemp = price_discount[pd]['Percent'];
      }
    }
    presult = (parseFloat(this.sum2()) / 100.00) * parseFloat(ptemp);
    return presult;
  }
  
  function a_discount2() {
    atemp  = 0.00;
    aresult = 0.00;    
    for(ad=0;ad<amount_discount.length;ad++) {
      if(parseFloat(this.allcount()) >= parseFloat(amount_discount[ad]['From'])) {
        atemp = amount_discount[ad]['Percent'];
      }
    }
    aresult = (parseFloat(this.sum2()) / 100.00) * parseFloat(atemp);
    return aresult;
  }    
  
  function mjk_c_discount2() {
    if ( globaldata['couponpc'] > 0.0 ) {
      aresult = (parseFloat(this.sum()) / 100.00) * (parseFloat(globaldata['couponpc']) -0.01);
    } else if (( globaldata['couponv'] > 0.0 ) && ( globaldata['couponmin'] == 0.0 ) ) {
      aresult = globaldata['couponv'];
    } else if (( globaldata['couponv'] > 0.0 ) && ( this.sum2() >= globaldata['couponmin'] ) ) {
      aresult = globaldata['couponv'];
    } else {
      aresult = 0.0;
    }
    return aresult;
  }    

  function t_discount2() {
    tresult2 = parseFloat(this.w_discount2()) +  parseFloat(this.p_discount2()) + parseFloat(this.a_discount2()) + parseFloat(this.mjk_c_discount2());
    return round(tresult2);
  }
  
  function t_d_percent() {
    if (parseFloat(this.t_discount()) == 0) {
      tdresult = 0.00; }
    else {  
      tdresult = parseFloat(this.t_discount()) / (parseFloat(this.sum()) / 100.00);
    }
    return (round(tdresult/100)*100);   // Rundung geaendert mjk
  }
  
  function w_dispatch() {
    wptemp  = 0.00;
    wpresult = 0.00;    
    for(wp=0;wp<weight_dispatch.length;wp++) {
      if(parseFloat(this.totalweight()) >= parseFloat(weight_dispatch[wp]['From'])) {
        wptemp = weight_dispatch[wp]['Price'];
      }
    }
    wpresult = parseFloat(wptemp);
    return wpresult;  
  }
  
  function p_dispatch() {
    pptemp  = 0.00;
    ppresult = 0.00;    
    for(pp=0;pp<price_dispatch.length;pp++) {
      if(parseFloat(this.sum()) >= parseFloat(price_dispatch[pp]['From'])) {
        pptemp = price_dispatch[pp]['Price'];
      }
    }
    ppresult = parseFloat(pptemp);
    return ppresult;  
  }
  
  function a_dispatch() {
    aptemp  = 0.00;
    apresult = 0.00;    
    for(ap=0;ap<amount_dispatch.length;ap++) {
      if(parseFloat(this.allcount()) >= parseFloat(amount_dispatch[ap]['From'])) {
        aptemp = amount_dispatch[ap]['Price'];
      }
    }
    apresult = parseFloat(aptemp);
    return apresult;  
  }    
  
  function t_dispatch() {
    tpresult = 0.00;
    tpresult = parseFloat(this.w_dispatch()) + parseFloat(this.p_dispatch()) + parseFloat(this.a_dispatch());
    return round(tpresult);
  }

  function w_dispatch2() {
    wptemp  = 0.00;
    wpresult = 0.00;    
    for(wp=0;wp<weight_dispatch.length;wp++) {
      if(parseFloat(this.totalweight()) >= parseFloat(weight_dispatch[wp]['From'])) {
        wptemp = weight_dispatch[wp]['Price2'];
      }
    }
    wpresult = parseFloat(wptemp);
    return wpresult;  
  }
  
  function p_dispatch2() {
    pptemp  = 0.00;
    ppresult = 0.00;    
    for(pp=0;pp<price_dispatch.length;pp++) {
      if(parseFloat(this.sum()) >= parseFloat(price_dispatch[pp]['From'])) {
        pptemp = price_dispatch[pp]['Price2'];
      }
    }
    ppresult = parseFloat(pptemp);
    return ppresult;  
  }
  
  function a_dispatch2() {
    aptemp  = 0.00;
    apresult = 0.00;    
    for(ap=0;ap<amount_dispatch.length;ap++) {
      if(parseFloat(this.allcount()) >= parseFloat(amount_dispatch[ap]['From'])) {
        aptemp = amount_dispatch[ap]['Price2'];
      }
    }
    apresult = parseFloat(aptemp);
    return apresult;  
  }    
  
  function t_dispatch2() {
    tpresult2 = 0.00;
    tpresult2 = parseFloat(this.w_dispatch2()) + parseFloat(this.p_dispatch2()) + parseFloat(this.a_dispatch2());
    return round(tpresult2);
  }

  function topay() {
    topayresult = parseFloat(this.sum()) + parseFloat(this.t_dispatch()) + parseFloat(this.shipping_mjk()) - parseFloat(this.t_discount());
    return round(topayresult);
  }

  function topay2() {
    if (globaldata['tax'] > 0) {
      topayresult2 = parseFloat(this.sum2()) + parseFloat(this.t_dispatch2()) + parseFloat(this.shipping_mjk2()) - parseFloat(this.t_discount2());
    } else {
      topayresult2 = this.topay();
    }
    return round(topayresult2);
  }

