//Methoden

function isElement(id) {
  if (this.ids.indexOf("||"+id+"||") != -1) {
    return true;
    }
  else {
    return false;
    }
  }

function splitIds() {
  var ids="-"+this.ids+"-";   // Sonst geht Netscape 4.05 nicht!
  var ida=new Array();
  ida=ids.split("||");        // Ohne Push/Pop
  this.id=new Array();
  for (t=1;t<ida.length-1;t++) {
    this.id[t-1]=ida[t];
    }
  }

function clear() {
  this.ids="||";
  this.udate();
  }

function getPrice(id) {
  if (!isNaN(id)) {
    id=this.id[id];
    }
  var p=0;
  for (t=0;t<this.items[id].price.length-1;t=t+2) {
    m=this.items[id].price[t+1];
    if (m=="."  || m=="" || this.items[id].quantity<m) {
      p=this.items[id].price[t];
      break;
      }
    }
  return p;
  }

function getTotalPrice(id) {
  if (!isNaN(id)) {
    id=this.id[id];
    }
  amount=this.items[id].quantity;
  price=this.getPrice(id);
	totalprice=parseFloat(price)*amount;
  if (isNaN(totalprice)) {
    return price;
		}
	else {
    return totalprice;
		}
	}

function getQuantity(id) {
  if (this.isElement(id)) {
    return this.items[id].quantity;
    }
  else {
    return "";
    }
  }

function update(id) {
  if (useCookie) {
    setCookie("basketids",this.ids);
    // Sind auch Werte abzuspeichern?
    if (this.ids.indexOf("||"+id+"||") != -1) {
      setCookie(id+'_q',this.items[id].quantity);
      setCookie(id+'_i',this.items[id].image);
      setCookie(id+'_v',this.items[id].vat);
      setCookie(id+'_p',this.items[id].price.join("||"));
      setCookie(id+'_c',this.items[id].content.join("||"));
      }
    }
  this.splitIds();
  }

function init() {
  if (useCookie) {
    if (askResore || confirm(cookietext1)) {
      this.ids=getCookie("basketids");
      if (this.ids == "") {
        this.ids="||";
        }
      setCookie("basketids",this.ids);
      this.splitIds();
      for (t=0; t<this.id.length; t++) {
        id=this.id[t];
        this.items[id]=new t_basketitem;
				this.items[id].quantity=getCookie(id+'_q');
				this.items[id].image=getCookie(id+'_i');
				this.items[id].vat=getCookie(id+'_v');
				this.items[id].price=getCookie(id+'_p').split("||");
				this.items[id].content=getCookie(id+'_c').split("||");
        }
      }
    }
  }

// Construktoren

function t_basketitem() {
  this.quantity=0;
  this.price= new Array();
  this.weight=0;
  this.vat=0;
  this.image= "";
  this.content= new Array();
  }

function t_basket() {
  this.id= new Array();
  this.ids="||";
  this.items= new Array()
  this.isElement=isElement;
  this.clear=clear;
  this.splitIds=splitIds;
  this.getPrice=getPrice;
  this.getTotalPrice=getTotalPrice;
  this.getQuantity=getQuantity;
  this.update=update;
  this.init=init;
  }

// Initialisierung

basket= new t_basket();
basket.init();

function UpdateBasket(id,amount,line) {
  idstart=basket.ids.indexOf("||"+id+"||");
  idend=idstart+id.length+2;
  if (isNaN(amount) || amount ==0) {
    // Löschen
    if (idstart != -1) {
      basket.ids=basket.ids.substring(0,idstart)+basket.ids.substring(idend,basket.ids.length);
      }
    }
  else {
    // Hinzufügen
    if (idstart == -1) {
      // Neues Element hinzufügen
      basket.ids=basket.ids+id+"||";
      basket.items[id]= new t_basketitem();

      // Bild
      var Bild="";
      if(dataTable[line][linkField]!="."){
        if(dataTable[line][imageField]=="."){
          Bild=stdImage;
          }
        else{
          Bild=dataTable[line][imageField]+imageExtList;
          }
        }
      else{
        Bild="nullt.gif";
        }
      if (!basketImages) {
        Bild="nullt.gif";
        }
      basket.items[id].image=shopbasis+"/pimages/"+Bild;

      // Die Warenkorbfelder
      for (t=1;t<=basketFieldNumber;t++) {
        basket.items[id].content[t-1]=dataTable[line][basketField[t]];
        }

      // MwSt
      if (vatField!=0) {
        if (dataTable[line][vatField]!=".") {
          basket.items[id].vat=dataTable[line][vatField];
          }
        else {
          basket.items[id].vat=standardVAT;
          }
        }
      else {
        basket.items[id].vat=standardVAT;
        }

      // Preis
      for (t=0;t<(priceScale*2-1);t++) {
        basket.items[id].price[t]=dataTable[line][priceField+t];
        }
      basket.items[id].price[priceScale*2-1]=".";

      // Gewicht
      if (weightField!=0) {
        if (dataTable[line][weightField]!=".") {
          basket.items[id].weight=dataTable[line][weightField];
          }
        else {
          basket.items[id].weight=0;
          }
        }
      else {
        basket.items[id].weight=0;
        }
      }
    // In jedem Fall Menge anpassen
    basket.items[id].quantity=amount;
    // Falls nur ein Element im Warenkorb
    if (oneOrderOnly) {
      basket.ids="||"+kennung+"||";
      }
    }
  if (frames['basketframe']) {
    basketframe.location.reload();
    }
  basket.update(id);
  }

