if( typeof window['convertStringToArray'] == 'undefined') { DynaLoad(_path + 'jscript/js_hlp_display_v1','convertStringToArray'); }
if ( !acceptSave ) { var acceptSave = toINT(nvl(custCookie.getVal('_ASK_SAVE'),'1')); }

// ****************************************************************************
// addEntry(_entry,_key,_num)
// fuegt den Artikel in der aktuellen Kombination dem Warenkorb hinzu oder
// erhoeht die Anzahl bereits vorhandener Artikel und aktualisiert die Seite
//
// benutzt :
// adjustKeyVal(), containsKey()
// ****************************************************************************
function addEntry(_entry,_key,_num) {

  var entryRet = "";

  // ist der Schluessel schon vorhanden?
  if ( containsKey(_entry,_key) ) {
   // den Wert entspr. anpassen
   entryRet = adjustKeyVal(_entry,_key,_num,true);
  }
  else {
   // Rueckgabewert initialisieren
   entryRet = _entry;
   // evtl. Separartor ergaenzen
   if ( entryRet.length > 0 ) {
     entryRet += '#|';
   }
   // neuen Wert setzen
   entryRet += _key + '#' + _num;
  }
  //alert('addEntry return ' + entryRet);

  return entryRet;
}

// ****************************************************************************
// adjustKeyVal(_entry,_key,_num,_ask)
// Anpassen der Anzahl des Artikels in der Kombination
//
// benutzt : convertStringToArray(), toINT()
// ****************************************************************************
function adjustKeyVal(_entry,_key,_num,_ask) {
//alert('adjustKeyVal in ' + _entry + ', key=' + _key + ', _num=' + _num);
 var entryRet = "";
 var arrRet   = new Array();
 var arrTmp   = new Array();
 var arrEntry = convertStringToArray(_entry,'#|');
 var bChoose  = false;

 for ( var iLoop=0; iLoop<arrEntry.length; iLoop++ ) {
  arrTmp = arrEntry[iLoop].split('#');
  if ( arrTmp[0] == _key ) {
    if ( _num > 0 ) {
      var _text = objFeature.getFeatureVal('_TXT_ADJ_NUMBER',actLang);
      _text = _text.replace('_ANZAHL_',arrTmp[1]);

      if ( _ask ) {
        bChoose = confirm(unescape(_text));
      }
      arrTmp[1] = ( bChoose ) ? (toINT(arrTmp[1]) + toINT(_num)) : toINT(_num);

    }
    else {
      var _text = objFeature.getFeatureVal('_TXT_DEL_ITEM',actLang) + "?";
      arrTmp[1] = ( confirm(unescape(_text)) ) ? 0 : toINT(arrTmp[1]);
    }

  }
  if ( arrTmp[1] != 0 ) {
    arrRet[arrRet.length] = arrTmp.join('#');
  }
 }

 if ( arrRet.length == 0 ) {
   arrRet[arrRet.length] = "0";
 }
 //alert('2 arrRet = ' + arrRet);
 entryRet = arrRet[0];
 if ( arrRet.length > 1 ) {
   entryRet = arrRet.join('#|');
 }
//alert('adjustKeyVal return ' + entryRet);
 return entryRet;
}

// ****************************************************************************
// copyVals(_source)
// ****************************************************************************
function copyVals(_source) {
 var objRet = new ObjItem();

 objRet.Number     = _source.Number;
 objRet.arrName    = _source.arrName;

 objRet.objVariant = _source.objVariant;
 objRet.varSep     = _source.varSep;
 objRet.varValSep  = _source.varValSep;
 objRet.objSPrice  = _source.objSPrice;
 objRet.currBase   = _source.currBase;
 objRet.Vat        = _source.Vat;

 objRet.actVariant = _source.actVariant;

 objRet.offerFrom  = _source.offerFrom;
 objRet.offerTill  = _source.offerTill;

 return objRet;
}

// ****************************************************************************
// containsKey(_entry,_key)
// Ueberprueft die aktuellen Eintraege auf den angegebenen Schluessel und
// liefert : true oder false
//
// benutzt : convertStringToArray()
// ****************************************************************************
function containsKey(_entry,_key) {
//alert('containsKey entry >' + _entry + '< key >' + _key + '<');
 var arrKey   = new Array();
 var arrEntry = convertStringToArray(_entry,'#|');

 // die Wertepaare KEY#ANZAHL in ein Array aufteilen
 for ( var iLoop=0; iLoop<arrEntry.length; iLoop++ ) {
  arrKey = arrEntry[iLoop].split('#');
  // enthaelt die aktuelle Kombination den Schluessek ?
  //alert('iLoop='+ iLoop + ', key=' + arrKey[0]);
  if ( arrKey[0] == _key ) {
   //alert('containsKey return true');
   return true;
  }
 }

//alert('containsKey return false');
 return false;
}

function getItemData(itemID) {
//alert('getItemData in ' + itemID);
 var objRet = new ObjItem();
 var iVarNo = 0;
 for ( var iLoop=0; iLoop<varStock.length; iLoop ++ ) {
  objRet = varStock[iLoop];
  iVarNo = objRet.getVariantNo(itemID);
  if ( iVarNo >= 0 ) {
    objRet = new ObjItem();
    objRet = copyVals(varStock[iLoop]);
    objRet.actVariant = iVarNo;
    return objRet;
  }
 }
//alert('getItemData out');
}



// ****************************************************************************
// hasBasketEntries()  OK
// ****************************************************************************
function hasBasketEntries() {
//alert('checkBasket-->IN');
  var arrBasket = wakoCookie.getValArray('ITEM');

  if ( arrBasket.length == 0 ) {
    alert(unescape(objFeature.getFeatureVal('_TXT_BASKET_EMPTY',actLang) + '!'));
    return false;
  }

//alert('hasBasketEntries-->OUT');
 return true;
}

// ****************************************************************************
// intAdd(_f, _objName)
// fuegt den Artikel in der aktuellen Kombination dem Warenkorb hinzu oder
// erhoeht die Anzahl bereits vorhandener Artikel und aktualisiert die Seite
//
// benutzt :
// addEntry(), toINT(), readObjFeatures(),
// ****************************************************************************
function intAdd(_f, _objName) {
//alert('intAdd in ' + _objName);
  if ( document.getElementsByName("anzahl" + _objName)[0] ) {
    // Ermittle den Wert des Eingabefeldes
    var objVal  = toINT(document.getElementsByName("anzahl" + _objName)[0].value);

    // Falls dieser 0 ist (oder ungueltig) Abbruch
    if ( objVal == 0 ) {
      alert(unescape(objFeature.getFeatureVal('_TXT_ENTER_NUMBER',actLang) + '!'));
      document.getElementsByName("anzahl" + _objName)[0].value = 0;
      return false;
    }

    // liest die Werte der Optionsfelder
    var objOpt  = readObjFeatures(_objName);
    // ermittelt die aktuellen Werte fuer den Artikel
    var objEnt  = wakoCookie.getVal(_objName);

    // falls keine Werte gefunden initialisieren
    objEnt = ( !objEnt ) ? "" : objEnt;

    // die Anzahl des Artikels in der Kombination um den Wert erhoehen oder setzen
    objVal = addEntry(objEnt,objOpt,objVal);

    // neue Werte in Cookie zurueckspeichern
    wakoCookie.setVal(_objName, objVal);

    alert(unescape(objFeature.getFeatureVal('_TXT_ITEM_ADDED',actLang) + '!'));

    doReload();
 }
//alert('intAdd out');
}

// ****************************************************************************
// intChangeEntry(_name, _value, _reload)
// Setzt den Cookie-Wert auf den angegebenen Wert _value
// benutzt :
// ****************************************************************************
function intChangeEntry(_name, _value, _reload) {
//alert('intChangeEntry-->'+_name+'='+_value + ')');
  custCookie.setVal(_name,_value);

  if ( _doReload ) {
    doReload();
  }
//alert('intChangeEntry-->out');
}

// ****************************************************************************
// intRemove(_objName,_objOpt)
// loescht das Item in der entspr. Variante und verwendeten Optionen aus den
// Warenkorb und aktualisiert die Seite
//
// benutzt :
// addEntry()
// ****************************************************************************
function intRemove(_objName,_objOpt) {
 //alert('intRemove in _objName>' + _objName + '< _objOpt>' + _objOpt + '<');

  // verwendete Kombinationen fuer den Artikel ermitteln
  var objEnt = wakoCookie.getVal(_objName);
  var objVal = "";

  // falls keine Werte gefunden initialisieren
  objEnt = ( !objEnt ) ? "" : objEnt;
  // die Anzahl des Artikels in der Kombination auf 0 setzen
  objVal = addEntry(objEnt,_objOpt,0);
  // aktuelle Werte speichert
  wakoCookie.setVal(_objName, objVal);

  // gibt es keine andere Kombinationen des Artikels ?
  if ( objVal == "0" ) {
    // aktuelle Werte speichern
    wakoCookie.setVal(_objName, objVal);
    // Eintrag aus Cookie entfernen
    wakoCookie.removeVal(_objName);
  }

  //alert('intRemove out');
  doReload();
}

// ****************************************************************************
// setNumber(_f,_objName)
// ****************************************************************************
function intSetNumber(_objName,_keys) {
//alert('intSetNumber in ' + _objName);
 var fName = "wako" + _objName + '_' + _keys;

 if ( document.getElementsByName("anzahl" + _objName + '_' + _keys)[0] ) {
    // Ermittle den Wert des Eingabefeldes
    var objVal  = toINT(document.getElementsByName("anzahl" + _objName + '_' + _keys)[0].value);

    // Falls dieser 0 ist (oder ungueltig) Abbruch
    if ( objVal == 0 ) {
      alert(unescape(objFeature.getFeatureVal('_TXT_ENTER_NUMBER',actLang) + '!'));
      document.getElementsByName("anzahl" + _objName + '_' + _keys)[0].value = 0;
      return false;
    }

    // liest die Werte der Optionsfelder
    var objOpt  = _keys;
    // ermittelt die aktuellen Werte fuer den Artikel
    var objEnt = wakoCookie.getVal(_objName);

    // falls keine Werte gefunden initialisieren
    objEnt = ( !objEnt ) ? "" : objEnt;

    // die Anzahl des Artikels in der Kombination um den Wert erhoehen oder setzen
    objVal = adjustKeyVal(objEnt,objOpt,objVal,false);

    // neue Werte in Cookie zurueckspeichern
    wakoCookie.setVal(_objName, objVal);

    doReload();
 }

//alert('intSetNumber out ');
}

// ****************************************************************************
// loescheKundendaten()
// ****************************************************************************
function loescheKundendaten(_reload, _message) {
  custCookie.loescheCookie();

  if ( !scdCookie ) {
    var scdCookie = new ObjCookie();
  }
  var vName = prompt(unescape(objFeature.getFeatureVal('_REMOVEDATA',actLang)),"");
  scdCookie.setCookieName(vName);
  scdCookie.loescheCookie();

  if ( _message ) {
    alert(unescape(objFeature.getFeatureVal('_CUSTDELETED',actLang)));
  }

  if ( _reload ) {
    doReload();
  }
}

// ****************************************************************************
// loescheWarenkorb()
// ****************************************************************************
function loescheWarenkorb(_reload, _message) {
  wakoCookie.loescheCookie();

  if ( _message ) {
    alert(unescape(objFeature.getFeatureVal('_WAKODELETED',actLang)));
  }

  if ( _reload ) {
    doReload();
  }
}

// ****************************************************************************
// removeCookies()
// ****************************************************************************
function removeCookies() {
 var vName = nvl(custCookie.getVal(arrFormData[0][0]),' ');
 if ( !acceptSave ) {
   loescheKundendaten(false,false);
 }
 loescheWarenkorb(false,false);
}
