var kChooseColorStr = "";
var kOrderNoStr = "";
var kCabletypeStr = "";
var kJacketColorStr = "";
var kNetPriceStr = "";
var kTotalPriceStr = "";
var kOrderVolStr = "";
var kPosStr = "";
var kFormatStr = "";
var kTypeStr = "";
var kLenStr = "";
var kEndPriceStr = "";
var kCustNoStr = "";
var kCustNameStr = "";
var kCustCompStr = "";
var kCustFirstNameStr = "";
var kCustLastNameStr = "";
var kCustTitleStr = "";
var kCustAdrStr = "";
var kCustStreetStr = "";
var kCustCityStr = "";
var kCustPostalStr = "";
var kCustTelStr = "";
var kCustFaxStr = "";
var kCharges = "";
var kAGBText = "";
var kBasketUrl = "";
var kReformatPrice = false;

if (kChooseColorStr == "") {
  var s = new String(top.location);
  if (s.indexOf("_en") == -1) {
    kChooseColorStr = "Bitte w\xE4hlen Sie die Mantelfarbe aus!";
    kOrderNoStr = "Bestelldaten";
    kCabletypeStr = "Art der Leitung";
    kJacketColorStr = "Mantelfarbe";
    kNetPriceStr = "Netto-Preis<br>per 100m";
    kTotalPriceStr = "Gesamtpreis";
    kOrderVolStr = "Bestellmenge in m";
    kPosStr = "Position";
    kFormatStr = "Aufmachung";
    kTypeStr = "Art";
    kLenStr = "L&auml;nge";
    kEndPriceStr = "Endpreis in EURO zzgl. MwSt";
    kCustNoStr = "Kunden-Nummer";
    kCustNameStr = "Kunden-Name";
    kCustCompStr = "Firma";
    kCustFirstNameStr = "Vorname";
    kCustLastNameStr = "Nachname";
    kCustTitleStr = "Anrede";
    kCustAdrStr = "Adresse";
    kCustStreetStr = "Strasse";
    kCustCityStr = "Ort";
    kCustPostalStr = "PLZ";
    kCustTelStr = "Telefon";
    kCustFaxStr = "Telefax";
    kCharges = "Bearbeitungskosten";
    kAGBText = "AGB gelesen und akzeptiert.";
    kBasketUrl = "/basket.html";
    kReformatPrice = true;
  }
  else {
    kChooseColorStr = "Please choose a color of jacket!";
    kOrderNoStr = "Ordering Details";
    kCabletypeStr = "Type of Wire";
    kJacketColorStr = "Color of Coating";
    kNetPriceStr = "Net-Price<br>per 100m";
    kTotalPriceStr = "Subtotal";
    kOrderVolStr = "Order Volume in m";
    kPosStr = "Position";
    kFormatStr = "Format";
    kTypeStr = "Type";
    kLenStr = "Length";
    kEndPriceStr = "Total in EURO plus VAT";
    kCustNoStr = "Customer Number";
    kCustNameStr = "Customer Name";
    kCustCompStr = "Company";
    kCustFirstNameStr = "First name";
    kCustLastNameStr = "Last name";
    kCustTitleStr = "Title";
    kCustAdrStr = "Adress";
    kCustStreetStr = "Street";
    kCustCityStr = "City";
    kCustPostalStr = "Postal code";
    kCustTelStr = "Telephone";
    kCustFaxStr = "Fax";
    kCharges = "Handling charges";
    kAGBText = "General Terms of Business read and accepted.";
    kBasketUrl = "/basket_en.html";
  }
}


if(top.basket==null){
  top.basket = new Array();
}

if(top.formData==null){
  top.formData = "";
}

if(top.custData==null){
  top.custData = "";
}


function basketItem(color,artikelnum,qty,chapter,orderno,prices,lengths,reblen,rebate,arts) {
  this.prices=prices;
  this.reblen=reblen;
  this.lengths=lengths;
  this.color=color;
  this.artikelnum=artikelnum;
  this.chapter=chapter;
  this.orderno=orderno;
  this.selectedUnit=0;
  this.rebate=rebate;
  this.selectedArt=0;
  this.arts=arts;
  this.qty=qty;
}


function addToBasket(pr_form,len_form,reblen,art_form,defLen) {
  var prices = new Array();
  var lengths= new Array();
  var arts   = new Array();

  var inx = pr_form.color.selectedIndex;

  if(inx < 1) {
      alert(kChooseColorStr);
      return;
  }
  var color=pr_form.color.options[inx].text;
  var artikelnum=pr_form.color.options[inx].value;


  for(var i=0; pr_form.elements['price'+i]!=null ;i++) {
      prices[i] = parseInt(pr_form.elements['price'+i].value);
  }

  for(var i=0;len_form.elements['blen'+i] !=null; i++){  
     lengths[i] = parseInt(len_form.elements['blen'+i].value);      
  }

  for(var i=0;art_form.elements['art'+i] !=null; i++){  
     arts[i] = art_form.elements['art'+i].value;      
  }

  var s=pr_form.col0price.value;
  var meter = s.match(/\s+1\s+m/i);
  if(meter) prices[0]*=100;
 
  var chapter = pr_form.prodgroup.value;
  var orderno = pr_form.orderno.value;
  var rebate = pr_form.rebate.value;

  /* All arrays have dummy first element attached in products.xsl because of some weird error.
     If the array only would have one element like new Array(300) it is empty inside basket.js. This leads to serious
     problems calculating the rebates.
     Therefore I add 0 as first element and kick it off here */

  var rebl = new Array();
  for(var i=0; i < reblen.length; i++){
    rebl[i-1] = reblen[i];
  };

  if (defLen == 0) {
    if (lengths.length > 0)
      defLen=lengths[0];
    else
      defLen=1;
  }

  var item = new basketItem(color,artikelnum,defLen,chapter,orderno,prices,lengths,rebl,rebate,arts);

  top.basket[top.basket.length]=item;
  top.content.location=kBasketUrl;
/*
  s="";
  for(var k in item) {    
    s+=k+" : "+item[k]+"\n";
  }
  alert(s);
*/
  
}

function fmtprice(n) {
  var s = n+"";
  while (s.length<3) s="0"+s;
  if (kReformatPrice)
       s=s.substring(0,s.length-2)+','+s.substring(s.length-2);
  else
       s=s.substring(0,s.length-2)+'.'+s.substring(s.length-2);
//  var l=s.length;
//  if(s.indexOf(",00")==l-3) s=s.substring(0,l-2)+"--";
  return s;
}

function fmtrebate(n) {
  if(n==0) return "&nbsp;";
  var s = n+"";
  while (s.length<3) s="0"+s ;
  s=s.substring(0,s.length-2)+'.'+s.substring(s.length-2);
  var l=s.length;
  while(s.charAt(s.length-1)=='0') s=s.substring(0,s.length-1);
  if(s.charAt(s.length-1)=='.') s=s.substring(0,s.length-1); 
  return "-"+s+"%";
}


function countSubtotal(totallen,nettopreise,rebate){   
 var subtotal   = Math.round(totallen*nettopreise*(10000 - rebate)/10000 / 100.00);
 return subtotal; 
}


function deleteItem(n){
  top.basket[n]=null;
  top.content.location.reload();  
}

function getLenPrice(item, totallen){

  for(var i=0; item.prices[i]!=null; i++){
    price = item.prices[i];
    //if(i==0) price*=100;
    if(i==4 || totallen < item.reblen[i]) break;    
  }
  return price; 
}


var vtimer = null;
var any_changed=false;


function NNrevalidate(e){
  if(e.which==13) {
    setTimeout("deferredValidate()",100);
  }
}

function revalidate2(key){
  if(key==13) {
     deferredValidate();
  }
}

function revalidate(n){
  if(vtimer){
      clearTimeout(vtimer);
  }
  vtimer = setTimeout("deferredValidate()",400);
}

function deferredValidate(){

 var changed=false;
 for(var i=0;i<top.content.document.forms.length;i++) {
    var f=top.content.document.forms[i];
    if ((f.name!="AGB") && (f.name!=kCharges)) {
      var n = f.inx.value;
      var item = top.basket[n];

      if(isNaN(parseInt(f.qty.value))){
        f.qty.value=item.qty; 
      }
      else {
        item.qty=parseInt(f.qty.value);
        if(item.qty==0) {
          top.basket[n]=null;
        }
        changed=true;
      }  

      if(isNaN(parseInt(f.unit.value))){
        f.unit.value=item.unit; 
      }
      else {
        item.unit=parseInt(f.unit.value);
        changed=true;
      }  
    }  
  }
  if(changed) {
    top.content.location.reload();  
  }

}


function countItems(){
var cnt=0;
  for(var i=0;i<top.basket.length;i++)
    if(top.basket[i]!=null) cnt++;
  return cnt;

}

function countTotalLen(item){
  return item.qty;   
    //item.lengths[item.selectedUnit]*item.qty
}

function wrap(s){
  return '<div class="wrapper">'+s+'</div>';
}

var grosstotal=0;

function listBasket(){
  var b = top.basket;
  var s="";

  grosstotal = 0;  
  var swap=true;
  for(var i=0;i<b.length;i++){
    var item = b[i];
    if(item!=null) {
      bgcolor=(swap==true)?'':' bgcolor="#e0e0e0" ';
      s+='<form name="f'+i+'" onSubmit="return false;"><tr>';
      s+='<input type="hidden" name="inx" value="'+i+'">'

      var onpress = document.all ? ' onKeyPress="top.topFrame.revalidate2(event.keyCode);" ' : '';
      s+='<td '+bgcolor+' NOWRAP align="center" NOWRAP><input type="text" name="qty" value="'+item.qty+'" size=7 '+onpress+' onBlur="top.topFrame.revalidate2(13);">'

      s+='</td>';
      s+='<td '+bgcolor+'>'+wrap(item.orderno)+'</td>';
      s+='<td '+bgcolor+'>'+wrap(item.chapter)+'</td>';
      s+='<td '+bgcolor+' NOWRAP >'+wrap(item.color)+'</td>';

      var totallen=countTotalLen(item);
//      s+='<td '+bgcolor+' NOWRAP align="center"><input type="text" name="totalm" value="'+totallen+'" onFocus="blur();" size=5></td>';

      s+='<td '+bgcolor+' align="center">';
      if (item.arts.length == 1) {
          s+=wrap(item.arts[0]);
          s+='<input type="hidden" name="art" value="'+item.arts[0]+'">';
      } else {
          s+='<select name="art" width=100 style="width=100px;" onChange="top.basket['+i+'].selectedArt=this.options.selectedIndex;">';   
          for(var j = 0; j<item.arts.length; j++ ) {
            s+='<option '
            if(j==item.selectedArt) s+=" SELECTED ";
            s+='>'+item.arts[j];
          }
        s+='</select>';
      }
      s+='</td>';

      s+='<td '+bgcolor+' NOWRAP align="center">';
      if (item.lengths.length == 1) {
          s+=wrap(item.lengths[0]);
          s+='<input type="hidden" name="unit" value="'+item.lengths[0]+'">';
      } else {
          s+='<select name="unit" width=100 style="width=100px;" onChange="top.basket['+i+'].selectedUnit=this.options.selectedIndex;">'   // " top.topFrame.revalidate('+i+');"
          for(var j = 0; j<item.lengths.length; j++ ) {
            s+='<option '
            if(j==item.selectedUnit) s+=" SELECTED ";
            s+='>'+item.lengths[j];
          }
          s+='</select>';
      }
      s+='</td>';

      var nettopreise=getLenPrice(item,totallen);
      s+='<td '+bgcolor+' NOWRAP align="right"><nobr>'+wrap(fmtprice(nettopreise))+'</nobr></td>';

      var subtotal = countSubtotal(totallen,nettopreise,item.rebate);
      s+='<td '+bgcolor+' NOWRAP align="right"><nobr>'+wrap(fmtprice(subtotal))+'</nobr></td>';
      s+='<td '+bgcolor+' NOWRAP><a href="javascript:void(0);" onClick="top.topFrame.deleteItem('+i+'); return false;"><img src="/img/del.gif" width="16" height="16" border="0" alt="Delete"></a></td>';
      s+='</tr></form>';  
      swap=!swap;
      grosstotal+=subtotal; 
    }     
  }
  if ((b.length > 0) && (grosstotal < 10000)) {
    bgcolor=(swap==true)?'':' bgcolor="#e0e0e0" ';
    var subtotal = 0.0;
    if (grosstotal < 10000) {
      subtotal = 2500;
      grosstotal+=subtotal; 
    }
    s+='<form name="'+kCharges+'" onSubmit="return false;">';
    s+='<tr>';
    s+='<input type="hidden" name="inx" value="'+b.length+'">';
    s+='<td '+bgcolor+' NOWRAP align="center"><input type="hidden" name="qty" value="1"></td>';
    s+='<td '+bgcolor+'>'+wrap(kCharges)+'</td>';
    s+='<td '+bgcolor+'>&nbsp;</td>';
    s+='<td '+bgcolor+'><input type="hidden" name="unit" value="0"></td>';
    s+='<td '+bgcolor+'><input type="hidden" name="totalm" value="1"></td>';
    s+='<td '+bgcolor+' align="center">&nbsp;</td>';
    s+='<td '+bgcolor+' NOWRAP align="right"><nobr>'+wrap(fmtprice(subtotal))+'</nobr></td>';
    s+='<td '+bgcolor+' NOWRAP align="right"><nobr>'+wrap(fmtprice(subtotal))+'</nobr></td>';
    s+='<td '+bgcolor+' NOWRAP>&nbsp;</td>';
    s+='</tr>';
    s+='</form>';
  } else {
    s+='<tr><td colspan="9" height="1"></td></tr>';
  }
  return s;   
}

function assignHandlers(win) {
  var b = top.basket;
  if(document.layers) {
    for(var i=0;i<b.length;i++){
      var item = b[i];
      if(item!=null) {
         win.document.forms['f'+i].qty.onkeydown=NNrevalidate; 
      }
    }
  }
}


function printBasket(){
  var b = top.basket;
  var s="";
  s+='<table cellspacing="1" border="0" width="100%" cellpadding="0">';
  s+='<tr><td rowspan=2 align="center" bgcolor="#e0e0e0" height="52">'+kOrderVolStr+'</td>'
  s+='<td rowspan=2 align="center" valign="center" bgcolor="#e0e0e0">'+kOrderNoStr+'</td>';
  s+='<td rowspan=2 align="center" valign="center" bgcolor="#e0e0e0">'+kCabletypeStr+'</td>';
  s+='<td rowspan=2 align="center" valign="center" bgcolor="#e0e0e0">'+kJacketColorStr+'</td>';
  s+='<td colspan=2 align="center" valign="center" bgcolor="#e0e0e0">'+kFormatStr+'</td>';
  s+='<td rowspan=2 align="center" valign="center" bgcolor="#e0e0e0">'+kNetPriceStr+'</td>';
  var nrows=top.topFrame.countItems()+7; 
  s+='<td align="center" valign="center" rowspan='+nrows+' bgcolor="#000000"><img src="/img/x.gif" width=1 border=0></td>';
  s+='<td rowspan=2 align="center" valign="center" bgcolor="#e0e0e0">'+kTotalPriceStr+'<br>'+kPosStr+'</td>'
  s+='<td align="center" valign="center" rowspan='+nrows+' bgcolor="#000000"><img src="/img/x.gif" width=1 border=0></td>';
  s+='<td align="center" valign="center" rowspan='+nrows+' ><img src="/img/x.gif" width=1 border=0></td>';
  s+='</tr>';

  s+='<tr>';
  s+='<td align="center" valign="center" bgcolor="#e0e0e0">'+kTypeStr+'</td>';
  s+='<td align="center" valign="center" bgcolor="#e0e0e0">'+kLenStr+'</td>';
  s+='</tr>';

  grosstotal = 0;  
  var swap=true;
  for(var i=0;i<b.length;i++){
    var item = b[i];
    if(item!=null) {
     if(item.selectedUnits<0)
       item.selectedUnits=0;
     if(item.selectedArt<0)
       item.selectedArt=0;

      bgcolor=(swap==true)?'':' bgcolor="#e0e0e0" ';
      s+='<tr>';
      s+='<td '+bgcolor+' NOWRAP align="center">'+item.qty+'</td>';
      s+='<td '+bgcolor+'>'+wrap(item.orderno)+'</td>';
      s+='<td '+bgcolor+'>'+wrap(item.chapter)+'</td>';
      s+='<td '+bgcolor+' NOWRAP >'+wrap(item.color)+'</td>';
      s+='<td '+bgcolor+' NOWRAP >'+wrap(item.arts[item.selectedArt])+'</td>';   //
      s+='<td '+bgcolor+' NOWRAP align="center">'+wrap(item.lengths[item.selectedUnit])+'</td>';
      var totallen=countTotalLen(item);
      var nettopreise=getLenPrice(item,totallen);
      s+='<td '+bgcolor+' NOWRAP align="right">'+wrap(fmtprice(nettopreise))+'</td>';
      var subtotal = countSubtotal(totallen,nettopreise,item.rebate);
      s+='<td '+bgcolor+' NOWRAP align="right">'+wrap(fmtprice(subtotal))+'</td>';
      s+='</tr>';  
      swap=!swap;
      grosstotal+=subtotal; 
    }     
  }  
  if ((b.length > 0) && (grosstotal < 10000)) {
    bgcolor=(swap==true)?'':' bgcolor="#e0e0e0" ';
    var subtotal = 0.0;
    if (grosstotal < 10000) {
      subtotal = 2500;
      grosstotal+=subtotal; 
    }
    s+='<tr>';
    s+='<td '+bgcolor+' NOWRAP align="center">&nbsp;</td>';
    s+='<td '+bgcolor+'>'+wrap(kCharges)+'</td>';
    s+='<td '+bgcolor+'>&nbsp;</td>';
    s+='<td '+bgcolor+'>&nbsp;</td>';
    s+='<td '+bgcolor+'>&nbsp;</td>';
    s+='<td '+bgcolor+' align="center">&nbsp;</td>';
    s+='<td '+bgcolor+' NOWRAP align="right">'+wrap(fmtprice(subtotal))+'</td>';
    s+='<td '+bgcolor+' NOWRAP align="right">'+wrap(fmtprice(subtotal))+'</td>';
    s+='</tr>';
  } else {
    s+='<tr><td colspan="8" height="1"></td></tr>';
  }
  s+='<tr>';
  s+='<td align="center" colspan=7 rowspan=3 height="15"><img src="/img/x.gif" height=15 border=0></td>';
  s+='<td align="center" valign="center" height=6><img src="/img/x.gif" width=1 border=0></td>'
  s+='</tr><tr>';
  s+='<td align="center" bgcolor="#000000" height="1"><img src="/img/x.gif" height=1 border=0></td>';
  s+='</tr><tr>';
  s+='<td align="center" valign="center" height=6><img src="/img/x.gif" width=1 border=0></td>';
  s+='</tr><tr>';
  s+='<td height="25" align="right" bgcolor="#e0e0e0" colspan=7>'+wrap('<b>'+kEndPriceStr+'</b>')+'</td>';
  s+='<td align="right" bgcolor="#e0e0e0" >'+wrap(getTotal())+'</b></td>';
  s+='</tr><tr>';
  s+='<td height="25" align="left" valign="top" colspan=11>&nbsp;</td>';
  s+='</tr></table>';
  return s;
}


function getTotal(){
  return fmtprice(grosstotal);
}

function getFields(s){
 var fields = new Array();
 if(s==null) return;
 while(s.length>1) {
   s=s.substring(1);
   var inx=s.indexOf("&");
   if(inx < 0)  inx=s.length; 
   var t = s.substring(0,inx);
   s=s.substring(inx);
   inx=t.indexOf("=");
   if(inx<0) break;
   var n=unescape(t.substring(0,inx));
   var v=unescape(t.substring(inx+1));
   fields[n]=v;
 } 
 return fields;  
}

function printCustomer(){
  var s="";
  var opts = getFields(top.formData);
  var newcustomer = getFields(top.formNeuData);
  if(opts && opts[kCustNoStr] && opts[kCustNoStr]!=null) {
    s+= '<b>'+kCustNoStr+': '+opts[kCustNoStr]+'</b>';
    if (opts[kCustNameStr] && opts[kCustNameStr]!=null) {
      s+= '<br><b>'+kCustNameStr+': '+opts[kCustNameStr]+'</b>';
    }
  }  
  else if(newcustomer) {
    s+='<b>'+kCustCompStr+': '+newcustomer[kCustCompStr]+'</b><br><br>';
    s+=newcustomer[kCustTitleStr]+' '+newcustomer[kCustFirstNameStr]+' '+newcustomer[kCustLastNameStr]+'<br><br>';
    s+=kCustAdrStr+':<br>';
    s+=newcustomer[kCustStreetStr]+'<br>'+newcustomer[kCustPostalStr]+' '+newcustomer[kCustCityStr]+'<br><br>';
    s+=kCustTelStr+': '+newcustomer[kCustTelStr]+'<br>';
    s+=kCustFaxStr+': '+newcustomer[kCustFaxStr]+'<br>';
  }
  return s; 
}

function getEmail(){
  var opts = getFields(top.formData);
  if(opts["E-Mail"]) return opts["E-Mail"];
  return ""; 
}

function printOptions(){
  var opts = getFields(top.formData);
  var s='';
  s+='<table border=0 width="300">';
  for(var i in opts) {
    var n=i;
    if(n.indexOf("_0")==n.length-2) n=n.substring(0,n.length-2);
    if(n.indexOf("_1")==n.length-2 || n.indexOf("_2")==n.length-2 ) {
      if(s.indexOf(n.substring(0,n.length-2)) == -1)
        n=n.substring(0,n.length-2) + ": ";
      else
        n='&nbsp;';
    }
    else n+=": ";
    s+="<tr nowrap><td valign=top nowrap>"+n+"</td><td valign=top nowrap>&nbsp; &nbsp;</td><td valign=top>"+opts[i]+"</td></tr>";
  }
  s+='</table>';
  return s;
}

function printOrder(){
var s='<table border="0" cellpadding="5" cellspacing="0" width="95%">';
s+='<tr><td height="70" valign="top"><span class="normal">';
s+=printCustomer();
s+='</span></td>';
s+='<td width="10"><img src="/img/x.gif" width="10" height="10" border="0"></td>';
s+='<td align="right" valign=top><span class="normal">';
s+=printOptions();
s+='</span></td></tr><tr><td colspan="3">';
s+=printBasket();
s+='</td></tr><tr><td colspan="3"><span class="normal">';
s+=kAGBText;
s+='</span></td></tr></table>';
return s;
}


function getDbData(){
  var b = top.basket;
  var s = top.custData + "<order>";
  var grosstotal = 0;  
  for(var i=0;i<b.length;i++){
    var item = b[i];
    if(item!=null) {
      s+='<pos>';
      if(item.selectedUnits<0)
        item.selectedUnits=0;
      if(item.selectedArt<0)
        item.selectedArt=0;
      s+='<color>'+item.color+'</color>';
      s+='<artikelnum>'+item.artikelnum+'</artikelnum>';
      s+='<art>'+item.arts[item.selectedArt]+'</art>';
      s+='<length>'+item.lengths[item.selectedUnit]+'</length>';
      var totallen=countTotalLen(item);
      var nettopreise=getLenPrice(item,totallen);
      var subtotal = countSubtotal(totallen,nettopreise,item.rebate);
      s+='<len>'+totallen+'</len>';
      s+='<price>'+nettopreise+'</price>';
      s+='<sum>'+subtotal+'</sum>';
      s+='</pos>';
      grosstotal+=subtotal;
    }
  }
  if (grosstotal < 10000) {
    s+='<pos>';
    s+='<color></color>';
    s+='<artikelnum>Bearbeitungskosten</artikelnum>';
    s+='<art></art>';
    s+='<length>1</length>';
    s+='<len>1</len>';
    s+='<price>2500</price>';
    s+='<sum>2500</sum>';
    s+='</pos>';
  }
  s+='</order>';
  return s;
}


//============================================


