function cl_warenkorb_getItemCount() {
  return this.items.length;
}

function cl_warenkorb_copy() {
  var myCopy = new cl_warenkorb();
  var myArray = new Array(this.items.length);
  for (var i = 0; i < this.items.length; ++i) myArray[i] = this.items[i].copy();
  myCopy.items = myArray;
  return myCopy;
}

function cl_warenkorb_getItemByIndex(index) {
  return ((index >= 0) && (index < this.items.length)) ? this.items[index] : null;
}

function cl_warenkorb_add(myItem) {
  var index = 0;
  if ((index = this.indexOfItem(myItem)) == -1) this.items[this.items.length] = myItem;
  else {
    var myPutItem = null;
    if ((myPutItem = this.getItemByIndex(index)) != null) myPutItem.setAnzahl(myPutItem.getAnzahl());
  }
}

function cl_warenkorb_remove(myItem) {
  var index = 0;
  if ((index = this.indexOfItem(myItem)) != -1) {
    for (var i = index; i < (this.items.length - 1); ++i) this.items[i] = this.items[i+1];
    this.items.length = this.items.length-1;
  }
}

function cl_warenkorb_removeAll() {
  for (var i = 0; i < this.items.length; ++i) this.items[i] = null;
  this.items = new Array();
}

function cl_warenkorb_indexOfItem(myItem) {
  for (var i = 0; i < this.items.length; ++i) if (myItem.compare(this.items[i]) == true) return i;
  return -1;
}

function cl_warenkorb_getItemList() {
  return this.items;
}


function cl_warenkorb_printForm(myDoc) {
  myDoc.writeln('<INPUT TYPE="HIDDEN" NAME="wk_itemCount" VALUE="' + this.getItemCount() + '">');
  for (var i = 0; i < this.getItemCount(); ++i) this.getItemByIndex(i).printForm(myDoc,(i+1));
}


function cl_warenkorb() {
  // Beziehungen
  this.items = new Array();

  // Methoden
  this.copy = cl_warenkorb_copy;

  this.add = cl_warenkorb_add;
  this.remove = cl_warenkorb_remove;
  this.removeAll = cl_warenkorb_removeAll;
  this.indexOfItem = cl_warenkorb_indexOfItem;
 
  this.getItemByIndex = cl_warenkorb_getItemByIndex;
  this.getItemList = cl_warenkorb_getItemList;
  this.getItemCount = cl_warenkorb_getItemCount;

  this.printForm = cl_warenkorb_printForm;
}