// ############################################################################
// #
// #    Javascriptfunktionen für Clientseitiger Wahrenkorb
// #
// #    autor Andreas Staskewitsch 2005
// #
// #    (c) 2005 www.shivas-garden.de
// ############################################################################

stylePath = "http://www.shivas-garden.pictureware/htdocs/style/1.css";
checkPath = "http://www.shivas-garden.pictureware/htdocs/jscript/check.js";

//formactionPath = "shopmail.php?m=1";


function warenkorb(){
  this.Artikel = new Array();
  this.zaehler = 0;
  this.name="wkorb"
  //eval(this.name + " = this");
  this.Reset = Reset;
  this.AddArtikel = AddArtikel;
  this.RemoveArtikel = RemoveArtikel;
}

//*****************************************************
// hinzufügen eines Artikels
// auszälen und neu schreiben in Array
//*****************************************************
function AddArtikel(anzahl,nummer,bezeichnung,objAtrSel,preis){
  atrisArray = 0;
  // Attributwerte auslesen
  if(objAtrSel){
    // TODO
    if(objAtrSel.options){
      attribut = objAtrSel.options[objAtrSel.selectedIndex].value;
    }else{
      attribut = Array();
      for(f=0;f<objAtrSel.length;f++){
        attribut[f] = objAtrSel[f].options[objAtrSel[f].selectedIndex].value;
        atrisArray = 1;
      }

    }
  }else{
    attribut = "";
  }

  if(atrisArray){
    attributwerte = attribut.join(",");
  }else{
    attributwerte = attribut;
  }

  x=0;
  for (i=0;i<this.Artikel.length;i++){
    if(this.Artikel[i][1] == nummer){
      if(this.Artikel[i][3] == attributwerte){
        this.Artikel[i][0] = Number(this.Artikel[i][0]) + Number(anzahl);
        x=1;
        break;
      }
    }
  }

  if (!x){
    this.Artikel[this.zaehler] = new Array(anzahl,
                                           nummer,
                                           bezeichnung,
                                           attributwerte,
                                           preis);
    this.zaehler++;
  }
  aktAnzeige(this.zaehler);
}

//*****************************************************
// löschen eines Artikel
//*****************************************************
function RemoveArtikel(index){
 for(f=index;f<this.Artikel.length-1;f++){
  this.Artikel[f] = this.Artikel[f+1];
 }
 this.Artikel.length--;
 this.zaehler--;
 aktAnzeige();
 writeWK1()
}

function Reset(){
  this.Artikel.length = 0;
  this.zaehler=0;
  aktAnzeige();
}

//*****************************************************
// Warenkorb in WK1 initialisieren
//*****************************************************
var WK1 = new warenkorb();
var Brutto;
function aktAnzeige(anzahl){
  Korb = top.WK1.Artikel;
  doc = top.korb.document;
  Sum = 0;
  Anz = 0;
  GAnz = 0;
  Brutto = 0;
  for (i=0;i<Korb.length;i++){
    Anz = Number(Korb[i][0]);
    // Attribute handeln
    attribute = Korb[i][3].split(",");
    AttrOut = "";
    Aufpreis = 0;
    for(n=0;n<attribute.length;n++){
      aTmp = attribute[n].split("#");
      if( !isNaN(aTmp[1]) ){
        Aufpreis += Number(aTmp[1]);
      }
    }
           // Preis * Anzahl
    Sum += (Number(Korb[i][4])+Number(Aufpreis)) * Anz;


    GAnz += Anz;
  }
  Brutto = Math.round(Sum * 1.16);
  doc.forms[0].anzahl.value = GAnz;
  doc.forms[0].preis.value = runden(Sum);
}

//*****************************************************
// anzeigen des warenkorb
//*****************************************************
function writeWK1(){

// korb holen
Korb = top.WK1.Artikel;

// doc verbinden
doc = top.main.document;

//*****************************************************
// warenkorb ausgeben
//***************************************'+stylePath+'**************
doc.open();
buf = "";
bufhead = ('<head><link rel="stylesheet" href="../style/korb.css" type="text/css">'+
		   '<script language = "Javascript" src = "../jscript/check.js"></script></head><body><center><form method = "POST" action = "../shopmail.php?m=1" onSubmit = "return checkform(this)"><table width="94%" cellpadding="0" cellspacing="0"><tr><td valign="top"><table height="21"><tr><td></td></tr></table><table><tr><td class="titel2">Warenkorb</td></tr></table>');

buf = buf + ('<table height="12"><tr><td></td></tr></table><table height="20" cellspacing="0" cellpadding="1" align="center" width="100%">\n');
buf = buf + ('<tr><td class="news">Anzahl</td>\n');
buf = buf + ('<td class="news"><!--Artikelnummer--></td>\n');
buf = buf + ('<td class="news">Bezeichnung</td><td class="news">Attribut</td>\n');
buf = buf + ('<td align="right" class="news">Einzelpreis</td><td align="right" class="news">Gesamtpreis</td>\n');
buf = buf + ('<td align="right" class="news">Aktion</td></tr><tr><td colspan="7">&nbsp;</td></tr>\n');
Sum = 0;
// Warenkorb anzeigen
for (f=0;f<Korb.length;f++){
  buf = buf + ('<tr>');
  buf = buf + ('<td width="10%" class="text">'+Korb[f][0]+' Stk</td>\n');
  buf = buf + ('<td class="blindtext">'+Korb[f][1]+'</td>\n');
  buf = buf + ('<td class="text">'+Korb[f][2]+'</td>\n');

  // Attribute handeln
  attribute = Korb[f][3].split(",");
  AttrOut = "";
  Aufpreis = 0;
  for(n=0;n<attribute.length;n++){
    aTmp = attribute[n].split("#");
    AttrOut += aTmp[0] + " ";
    if( !isNaN(aTmp[1]) ){
      Aufpreis += Number(aTmp[1]);
    }
  }
  //alert(Aufpreis)
  buf = buf + ('<td class="text">'+AttrOut+'</td>\n');
  einzelpreis =  (Number(Korb[f][4]) + Number(Aufpreis));
  buf = buf + ('<td align="right" class="text">'+runden(einzelpreis)+' &euro;</td>\n');
  Asum = ( Number(Korb[f][4]) + Number(Aufpreis) ) * Korb[f][0];
  Sum += Asum;
  gesamtpreis = Asum;
  
  buf = buf + ('<td align="right" class="text">'+runden(gesamtpreis)+' &euro;</td>\n');
  buf = buf + ('<td align="right" class="text"><a href="javascript:top.WK1.RemoveArtikel('+f+')">Löschen</a></td>\n');
  buf = buf + ('</tr>');
}
buf = buf + ('<tr><td colspan="7"><img src="../images/picsel000000.gif" width="100%" height="1"></td></tr><tr>\n')
buf = buf + ('<td colspan=4 align=right class="titel2">Gesamt:&nbsp;</b></td>\n');
buf = buf + ('<td align=right colspan="2" align="center" class="text">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;'+runden(Sum)+'&nbsp;&euro;</td><td>&nbsp;</td>\n');
buf = buf + ('</tr>');
buf = buf + ('<tr><td colspan=4 align=right class="text">Zuzüglich Versandkosten von </b></td>\n');
buf = buf + ('<td align=right colspan="2" align="center" class="text">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;7,00&nbsp;&euro;</td><td>&nbsp;</td>\n');
buf = buf + ('</tr>');
buf = buf + ('</table>');

SrcCode = buf;
SrcCode = SrcCode.replace(/Löschen/g,"");
SrcCode = SrcCode.replace(/action/g,"");
SrcCode = SrcCode.replace(/javascript:/g,"javascript://");

buf = buf + ('<input type=hidden name=data value="'+escape(SrcCode)+'">');
buf = buf + ('<table align="center" width="100%">');
buf = buf + ('<tr><td>&nbsp;</td></tr>');
buf = buf + ('<tr><td class="titel" width="45%" colspan="2" align="center">Bestellformular<img src="../images/picsel000000.gif" width="100%" height="1"></td></tr>');
buf = buf + ('<tr><td><table height="100%" width="100%" align="center">');
buf = buf + ('&nbsp;');

buf = buf + ('<tr><td class="text">Vorname</td><td><input size="30" class="input" type="text" name="vorname" value=""></td></tr>');
buf = buf + ('<tr><td class="text">Nachname</td><td><input size="30" class="input" type="text" name="nachname" value=""></td></tr>');
buf = buf + ('<tr><td class="text">Straße</td><td><input size="30" class="input" type="text" name="strasse" value=""></td>');
buf = buf + ('<td class="text">&nbsp;Hausnummer</td><td><input class="input" type="text" name="hausnummer" value="" size="10" maxlength="5"></td></tr>');
buf = buf + ('<tr><td class="text">Ort</td><td><input class="input" type="text" name="ort" size="30" value=""></td>');
buf = buf + ('<td class="text">&nbsp;Plz</td><td><input class="input" type="text" name="plz" value="" size="10" maxlength="5" onBlur="checknumber( this )"></td>');
buf = buf + ('<tr><td class="text">Telefon</td><td><input size="30" class="input" type="text" name="tele" value="" onBlur="checknumber( this )"></td></tr>');
buf = buf + ('<tr><td class="text">Email</td><td><input class="input" type="text" name="email"  maxlength="50" size="30" onBlur="checkmail( this )"></td></tr>');
buf = buf + ('<tr><td class="text">Zahlungskonditionen</td><td class="text"><select class="select" name="zahlungskondition" size=""><option value="Vorkasse">Vorkasse</option><option value="Nachnahme">Nachnahme + 4,00 €</option></select></td></tr>');
buf = buf + ('<tr><td class="text" colspan="2"></td></tr>');
buf = buf + ('<tr><td class="text" colspan="2">Ich habe die AGBs gelesen und stimme diesen zu!</td></tr>');
//onClick="checkCheckBox(this)"
buf = buf + ('</table></td>');

buf = buf + ('<td class="titel2" align="center" rowspan="9" width="55%">Shivas Garden<br>versichert Euch<br>die hier eingetragenen Daten<br>keinem Dritten weiter zugeben bzw. elektronisch zu speichern!<br><br></td></tr>');
buf = buf + ('<tr><td class="ktext" align="center" colspan="2"><br><br>Bei Problemen oder Fragen einfach eine <a class="ktext" target="main" href="../mail.htm"><u>mail</u> </a>senden oder anrufen ( 03 45 / 68 45 689 )</td></tr>');
buf = buf + ('<tr><td align="center" colspan="2"><br><img src="../images/picsel000000.gif" width="100%" height="1"><br><br><input class="button" type="submit" name="send" value="Bestellen" ></td></tr>');
//disabled
buf = buf + ('</table>');
buf = buf + ('</form>');
buf = buf + ('');
buf = buf + ('</td></tr></table></center></body>');

doc.write(bufhead+buf);
doc.close();
}

// schmale Ansicht im Frame
function writeWKLine(){
  doc = window.korb.document;
  doc.open()
  doc.clear()
  doc.write('<html>' +
            '<head><script>WKL=1;</script>' +
            '<link rel="stylesheet" href="../style/korb.css" type="text/css">'+
            
            '</head>' +
            '<body>' +
            ' <form>'+
            '<table height="12"><tr><td></td></tr></table>'+
            '<table border="0" width="100%" height="100%"><tr><td valign="top">'+
            '  <table border="0" class="tablehead" width="100%"><tr><td><a class="tableheadlink" target="main" href="javascript:top.writeWK1()">Ihr Warenkorb</a></td></tr></table>'+
            '  <table class="tablemain" width="100%" height="90%"><tr><td></td></tr>'+
            '   <tr><td valign="top">'+
            '	<table>'+
            '	<tr><td class="text"><input name=anzahl size=3 value="0" class="output"> Artikel</td></tr>'+
            '	<tr><td class="text">im Warenkorb mit einem Gesamtwert</td></tr>'+
            '	<tr><td valign="top" class="text"><input name=preis size=7 value="0" class="output">&euro;<br><br></td></tr>'+
            '   <tr><td><input type="button" class="button" onClick="javascript:top.writeWK1()" value="  Bestellen  "></td></tr>'+
            '  </table></td></tr></table>'+
            '</td><td>&nbsp;</td></tr></table>'+
            ' </form>'+
            '</html>')
  doc.close()


}

function checkCheckBox(f){
	if (f.checked){
		document.forms[0].send.disabled=false;
	}else
		document.forms[0].send.disabled=true;
}

// rundet die Zahl bzw hängt 00-stellen an
function runden(x) {
  var k = (Math.round(x * 100) / 100).toString();			// der Eingabewert wird gerundet und in einen String umgewandelt:
  k += (k.indexOf('.') == -1)? '.00' : '00';				// bei glatten Werten wird .00 angehängt:
  var p = k.indexOf('.'), m = k.indexOf('-.');
  var f = (p == 0 || m == 0)? '0,' : ',';					// Punkte werden durch Komata ersetzt:
  return k.substring(0, p) + f + k.substring(p+1, p+3);		// der Rückgabewert wird zusammengesetzt:
}


