if( typeof window['ObjBasketEntry'] == 'undefined') { DynaLoad(_path + 'jscript/object/js_obj_basket_entry','ObjBasketEntry'); }
if( typeof window['ScalePrice'] == 'undefined')     { DynaLoad(_path + 'jscript/object/js_obj_scale_price' ,'ScalePrice'); }

// ****************************************************************************
// dispBasket()
// Setzt den Cookie-Wert VARIANTE auf den angegebenen Wert _value
// und aktualisiert die Seite
//
// benutzt :
// ObjBasketEntry(), ObjItem()
// getItemData(), pad(), valuta()
// ****************************************************************************
function dispBasket() {
//alert('dispBasket in');
 // Liefert die Items des Warenkorbs als Array

 var arrBasket = wakoCookie.getValArray('ITEM');
 var basketSum = 0;
 var tmp = "";
 var _objItem = new ObjItem();

 // Den Tabellen-Header ausgeben **************************************
 if ( arrBasket.length > 0 ) {
  var arrKeys = new Array();
  var basketEntry = null;
  var optVals = "";
  var iTmp = 0;

  tmp = '<table><thead><tr>'
      + '<th>' + objFeature.getFeatureVal("_TXT_MENGE",actLang) + '</th>'
      + '<th>' + objFeature.getFeatureVal("_TXT_ARTIKEL",actLang) + '</th>'
      + '<th>&#160;</th></tr></thead>'
      + '<colgroup><col span="3" width="30%" /></colgroup>'
      + '<tbody>';
  document.write(tmp);


 // Ausgabe der einzelnen Artikel des Warenkorbs (Name,Wert,Name,Wert,...)
 for ( var iLoop=0; iLoop<arrBasket.length; iLoop+=2 ) {
  // _objItem enthaelt alle Informationen des Artikels
  _objItem = getItemData(arrBasket[iLoop]);
  // basketEntry dient zur Ermittlung der Keys, der (Varianten-)Anzahl
  basketEntry = new ObjBasketEntry(arrBasket[iLoop],arrBasket[iLoop+1]);
  // arrKeys Array mit den verwendeten Keys (verwendete Options)
  arrKeys = basketEntry.getKeys();
  document.write('<tr><td colspan="3"><hr></td></tr>');
  document.write('<tr>');

  // Ausgabe der linken Spalte ****************************************
  document.write('<td><span class="iNumber">' + basketEntry.getPartNumber() + '</span>x<br />');
  // iTmp : die aktuell erreichte Staffel
  iTmp = _objItem.getRange(basketEntry.getPartNumber());
  document.write('<span class="iPrice">'
               +   valuta(_objItem.getPrice(iTmp)
                         ,actCurr,false,null,null)
               + '</span><br />');
  document.write('</td>');
  // Ausgabe der rechten Spalte ***************************************
  document.write('<td colspan="2">');
  document.write('<span class="iName">'
               +   _objItem.arrName[actLang] + "&nbsp;"
               +   _objItem.getVariant().arrName[actLang]
               + '</span><br />');

  // Ausgabe der verschiedenen Kombinationen **************************
  for ( var iKey=0; iKey<arrKeys.length; iKey++ ) {
   // Die verwendeten Optionswerte aus den Keys ermitteln zur Ausgabe im Title
   optVals = unescape(_objItem.getFeatureValues(arrKeys[iKey],actLang));
   // Ausgabe der Kombination *****************************************
   // iTmp : die Anzahl der aktuellen Kombination
   iTmp = basketEntry.getPartNumber(arrKeys[iKey]);

   document.write('<span class="iOptions">'
                + '<a name="help' + iKey + '"></a>'
                +   iTmp + "x&nbsp;"
                + '<a href="#help' + iKey + '" title="' + optVals + '">'
                +   optVals.substr(0,15) + '...'
                + '</a>&nbsp;');
   // Ausgabe des Remove-Item-Images **********************************
   document.write('<a href="javascript:intRemove('
                + '\'' + basketEntry.getName() + '\','
                + '\'' + arrKeys[iKey]         + '\')">'
                +  '<img src="images/icons/delete.gif" '
                +       'title="' + objFeature.getFeatureVal("_TXT_REM_ITEM",actLang) + '" />'
                + '</a>'
                + '</span><br />');
  }

  // Ausgabe des Item-Gesamtpreises ***********************************
  // iTmp : die Anzahl der aktuellen Kombination
  iTmp = basketEntry.getPartNumber();
  iTmp *= _objItem.getPrice(_objItem.getRange(basketEntry.getPartNumber()));
  basketSum += iTmp;
  document.write('<span class="gPrice">'
               + objFeature.getFeatureVal("_TXT_GESAMT",actLang)
               + '<br />'
               + valuta(iTmp, actCurr, false, null, null)
               + '</span>');
  document.write('</td>');
  document.write('</tr>');
 }

 // Den Tabellen-Body schliessen **************************************
 if ( arrBasket.length > 0 ) {
  document.write('<tr>');
  document.write('<td colspan="3"><hr></td>');
  document.write('</tr>');

  // Ausgabe der Gesamtsumme ******************************************
  document.write('<td colspan="2">');
  document.write('<span>'
               +  objFeature.getFeatureVal("_TXT_SUMME",actLang)
               + '<br /></span>');
  document.write('<span>'
               +   objFeature.getFeatureVal("_TXT_WAKOFOOTER",actLang)
               + '</span>');
  document.write('</td>');
  document.write('<td>');
  document.write('<span>'
               +   valuta(basketSum, actCurr, false, null, null)
               + '</span>');
  document.write('</td>');
  document.write('</tr>');
  document.write('<tr>');
  document.write('<td colspan="5"><span>'
               +   objFeature.getFeatureVal("_TXT_ENDSHOPPING",actLang)
               + '</span></td>');
  document.write('</tr>');
  document.write('<tbody></table>');
 }
 }
 
/*
 tmp = '<table width="95%">'
      + '<colgroup><col span="3" width="30%" /></colgroup>'
      + '<thead>'
      + '<tr>'
      + '<th>' + 'testcol1' + '</th>'
      + '<th>' + 'testcol2' + '</th>'
      + '<th>&#160;</th>'
      + '</tr>'
      + '</thead>'
      + '<tbody>';
  document.write(tmp);
  
  tmp = '<tr>'
      + '<td>' + 'testdata1' + '</td>'
      + '<th>' + 'testdata2' + '</td>'
      + '<td>&#160;</td>'
      + '</tr>'
      + '</tbody>'
      + '</table>';
  document.write(tmp);
  */
//alert('dispBasket out');
}

// ****************************************************************************
// dispBasketDetail()
// ****************************************************************************
function dispBasketDetail() {
//alert('dispBasketDetail in');
 // Liefert die Items des Warenkorbs als Array
 var arrBasket = wakoCookie.getValArray('ITEM');
 var basketSum = 0;
 var objItem = new ObjItem();
 var basketEntry = null;
 var arrCS = new Array(1,1,1,1,1);

 // Den Tabellen-Header ausgeben **************************************
  document.write('<colgroup>');
  document.write('<col width="60px" /><col width="auto" /><col width="auto" />'
               + '<col width="12%" /><col width="12%" />');
  document.write('</colgroup>');
  document.write('<thead><tr>');
  document.write('<th scope="col">' + objFeature.getFeatureVal("_TXT_BILD",actLang) + '</th>');
  document.write('<th scope="col">' + objFeature.getFeatureVal("_TXT_ARTIKEL",actLang) + '</th>');
  document.write('<th scope="col">' + objFeature.getFeatureVal("_TXT_MENGE",actLang) + '</th>');
  document.write('<th scope="col">' + objFeature.getFeatureVal("_TXT_PREIS",actLang) + '</th>');
  document.write('<th scope="col">' + objFeature.getFeatureVal("_TXT_GESAMT",actLang) + '</th>');
  document.write('</tr></thead>');
  document.write('<tbody>');


 // Ausgabe der einzelnen Artikel des Warenkorbs (Name,Wert,Name,Wert,...)
 for ( var iLoop=0; iLoop<arrBasket.length; iLoop+=2 ) {
  // objItem enthaelt alle Informationen des Artikels
  objItem = getItemData(arrBasket[iLoop]);
  // basketEntry dient zur Ermittlung der Keys, der (Varianten-)Anzahl
  basketEntry = new ObjBasketEntry(arrBasket[iLoop],arrBasket[iLoop+1]);

  basketSum += dispBasketEntry(objItem,basketEntry,arrCS);
 }

 // Den Tabellen-Body schliessen **************************************
 document.write('<tr>');
 document.write('<td><hr></td>');
 document.write('<td><hr></td>');
 document.write('<td><hr></td>');
 document.write('<td><hr></td>');
 document.write('<td><hr></td>');
 document.write('</tr>');

 // Ausgabe der Gesamtsumme ******************************************
 //wakoCookie.setVal('TOTALAMOUNT',basketSum);
 document.write('<tr>');
 document.write('<td><span>'
              +  objFeature.getFeatureVal("_TXT_SUMME",actLang)
              + '</span></td>');
 document.write('<td colspan="3"><span>'
              +   objFeature.getFeatureVal("_TXT_WAKOFOOTER",actLang)
              + '</span></td>');
 document.write('<td><span>'
              +   valuta(basketSum, actCurr, false, null, null)
              + '</span></td>');
 document.write('</tr>');
 document.write('</tbody>');
 //document.write('</table>');
//alert('dispBasketDetail out');
}

// ****************************************************************************
// dispBasketEntry()
//
// benutzt :
// ****************************************************************************
function dispBasketEntry(_objItem,_basketEntry,_arrColSpan) {
//alert('dispBasketEntry IN');
  var arrVals = new Array (""    // Imagepfad"
                         ,""    // Artikelname"
                         ,0     // GesamtMenge
                         ,0     // VariantMenge
                         ,0.0   // Einzelpreis
                         ,0.0   // Gesamtpreis
                         );
  var tmp = "";
  var arrKeys = new Array();
  var basketSum = 0;

  // Array mit Werten fuellen
  arrVals[0] = "";
  arrVals[1] = _objItem.arrName[actLang]
             + "&nbsp;"
             + _objItem.getVariant().arrName[actLang];

  arrVals[2] = _basketEntry.getPartNumber();
  arrVals[3] = 0;
  arrVals[4] = _objItem.getPrice(_objItem.getRange(arrVals[2]));
  arrVals[5] = arrVals[2] * arrVals[4];

  // arrKeys Array mit den verwendeten Keys (verwendete Options)
  arrKeys = _basketEntry.getKeys();

  document.write('<tr class="itemMain">');
  // Ausgabe der Spalte BILD ******************************************
  document.write('<td colspan="' + _arrColSpan[0] + '" rowspan="' + (arrKeys.length+1) + '">'
               +  '<img src="' + _objItem.getVariant().arrImage[objImage.SMALL] + '" />'
               + '</td>');
  // Ausgabe der Spalte ARTIKEL ***************************************
  document.write('<td colspan="' + _arrColSpan[1] + '">'
               + '<span class="iName">' + arrVals[1] + '</span>'
               + '</td>');
  // Ausgabe der Spalte MENGE *****************************************
  document.write('<td colspan="' + _arrColSpan[2] + '">'
               + arrVals[2]
               + '</td>');
  // Ausgabe der Spalte PREIS *****************************************
  document.write('<td colspan="' + _arrColSpan[3] + '">'
               + '<span class="iPrice">'
               +   valuta(arrVals[4],actCurr,false,null,null)
               + '</span>'
               + '</td>');

  // Ausgabe der Spalte SUMME *****************************************
  document.write('<td colspan="' + _arrColSpan[4] + '">'
               + '<span class="gPrice">'
               +   valuta(arrVals[5], actCurr, false, null, null)
               + '</span>'
               + '</td>');
  document.write('</tr>');

  basketSum += arrVals[5];

  // Ausgabe der verschiedenen Kombinationen **************************
  for ( var iKey=0; iKey<arrKeys.length; iKey++ ) {
   // Array mit Werten fuellen
   arrVals[0] = "";
   arrVals[1] = unescape(_objItem.getFeatureValues(arrKeys[iKey],actLang))
              + '<a href="javascript:intRemove('
              + '\'' + _basketEntry.getName() + '\','
              + '\'' + arrKeys[iKey]         + '\')">'
              +  '<img src="images/icons/delete.gif" '
              +       'title="' + objFeature.getFeatureVal("_TXT_REM_ITEM",actLang)
              + '" />'
              + '</a>';
   arrVals[3] = _basketEntry.getPartNumber(arrKeys[iKey]);
   arrVals[4] = _objItem.getPrice(_objItem.getRange(arrVals[2]));
   arrVals[5] = arrVals[3] * arrVals[4];

   document.write('<tr class="itemVariant">');
   // Ausgabe der Spalte BILD ******************************************
   // document.write('<td colspan="' + _arrColSpan[0] + '">&#160;</td>');
   // Ausgabe der Spalte ARTIKEL ***************************************
   document.write('<td colspan="' + _arrColSpan[1] + '">'
                + '<span class="iName">' + arrVals[1] + '</span>'
                + '</td>');
   // Ausgabe der Spalte MENGE *****************************************
   document.write('<td colspan="' + _arrColSpan[2] + '">');

   tmp = "javascript:intSetNumber("
       + "'" + _basketEntry.getName() + "',"
       + "'" + arrKeys[iKey] + "')";

   document.write('<form name="wako' + _basketEntry.getName()
                                     + '_'
                                     + arrKeys[iKey] + '">');
   document.write('<input type="text" size="4"'
                 + 'name="anzahl' + _basketEntry.getName()
                                  + '_'
                                  + arrKeys[iKey]
                                  + '" '
                 + 'value="' + arrVals[3] + '" '
                 + 'onChange="' + tmp + '">');
   document.write('<a href="' + tmp + '">');
   document.write('<img class="iconOK" src="images/icons/ok.gif" />');
   document.write('</a>');
   document.write('</form>');

   document.write('</td>');
   // Ausgabe der Spalte PREIS *****************************************
   document.write('<td colspan="' + _arrColSpan[3] + '">&#160;</td>');
   document.write('<td colspan="' + _arrColSpan[4] + '">&#160;</td>');
   document.write('</tr>');
  }

  //alert('dispBasketEntry OUT');
  return basketSum;
}
