    var winkelwagentjeLeeg = true;	
	
<!--

  /*
  ' function  : writeBasketOrderTableRows
  ' overview  : writes out the tr and tds in the table of the basket and should be invoked in a script block that is placed within the basket orders table
  ' arguments : 
  ' return    : 
  ' example   : 
  ' note      : 
  */
  function writeBasketOrderTableRows() {
/************************** editable: **************************/
    // variables for the fields in the basket
    var objpageid = new byrefVariable();
    var objproductcode = new byrefVariable();
    var objaantal = new byrefVariable();
    var objproductcode = new byrefVariable();
    var objnaamvandewijn = new byrefVariable();
    var objkleur = new byrefVariable();
    var objinhoudperfles = new byrefVariable();
    var objproducent = new byrefVariable();
    var objoogstjaar = new byrefVariable();
    var objprijsineuros = new byrefVariable();
    var objsorteerprijs = new byrefVariable();
    
    // provide the name of one of the fields in the basket between the quotes in the line below
    var aProductIDs = winkelwagentje.geefArrayVanProductIDs('aantal');


    for (var iVolgnummer = 1; iVolgnummer <= aProductIDs.length; iVolgnummer++)
    {
      var iUniqueInternalID = aProductIDs[iVolgnummer - 1];
      winkelwagentje.geefProductGegevens(iUniqueInternalID, objpageid, objaantal, objproductcode, objnaamvandewijn, objkleur, objinhoudperfles, objproducent, objoogstjaar, objprijsineuros, objsorteerprijs);

      sOnChange = 
        ' calculateTotals(); ' +
        'winkelwagentje.voegProductToe(' + 
          iUniqueInternalID + 
          ', \'' + objpageid.value + '\'' +
          ', document.forms[\'frmbestellijst\'].elements.aantal' + iVolgnummer + '.value' +
		  ', \'' + unescape(objproductcode.value) + '\'' +
          ', \'' + unescape(objnaamvandewijn.value) + '\'' +
          ', \'' + unescape(objkleur.value) + '\'' +
          ', \'' + unescape(objinhoudperfles.value) + '\'' +
          ', \'' + unescape(objproducent.value) + '\'' +
          ', \'' + unescape(objoogstjaar.value) + '\'' +
          ', \'' + unescape(objprijsineuros.value) + '\'' +
          ', \'' + unescape(objsorteerprijs.value) + '\'' +
        ');'



      // write table row
      if (objaantal.value != 0) {
        document.write(
          '<tr  class="basket-column"> ' +
          '  <td class="aantal"> ' +
          '    <input size="4" onChange="if ((parseInt(this.value)<0) || (isNaN(this.value))) return false;' + sOnChange + ';" type="text" name="aantal' + iVolgnummer + '" id="aantal' + iVolgnummer + '" value="' + objaantal.value + '"> ' +
          '  <img src="/images/update.gif" alt="Update prijs" width="16" height="16" border="0"></td> ' +
          '  <td> ' +
          '    <input type="hidden" name="page_id' + iVolgnummer + '" id="page_id' + iVolgnummer + '" value="' + unescape(objpageid.value) + '">' +
          '    <input type="hidden" name="productcode' + iVolgnummer + '" id="productcode' + iVolgnummer + '" value="' + unescape(objproductcode.value) + '">' +
          '    <input type="hidden" name="kleur' + iVolgnummer + '" id="kleur' + iVolgnummer + '" value="' + unescape(objkleur.value) + '">' +
          '    <input type="hidden" name="producent' + iVolgnummer + '" id="producent' + iVolgnummer + '" value="' + unescape(objproducent.value) + '">' +
          '    <input type="hidden" name="oogstjaar' + iVolgnummer + '" id="oogstjaar' + iVolgnummer + '" value="' + unescape(objoogstjaar.value) + '">' +
          '    <input type="hidden" name="sorteerprijs' + iVolgnummer + '" id="sorteerprijs' + iVolgnummer + '" value="' + unescape(objsorteerprijs.value) + '">' +
          '    <input type="hidden" name="naamvandewijn' + iVolgnummer + '" id="naamvandewijn' + iVolgnummer + '" value="' + unescape(objnaamvandewijn.value) + '">' + unescape(objnaamvandewijn.value) + 
          '  </td> ' +
          '  <td> ' +
          '    <input type="hidden" name="inhoudperfles' + iVolgnummer + '" id="inhoudperfles' + iVolgnummer + '" value="' + unescape(objinhoudperfles.value) + '">' 
);
			if ( objinhoudperfles.value.length>"" && unescape(objinhoudperfles.value) == parseFloat(unescape(objinhoudperfles.value)) ) 
				document.write(	unescape(objinhoudperfles.value) + 'cl.');
			else {
				document.write(	unescape(objinhoudperfles.value) );
				
			}
	      document.write(
          '  </td> ' +
          '  <td> ' +
          '&euro;&nbsp;<input type="hidden" name="prijsineuros' + iVolgnummer + '" id="prijsineuros' + iVolgnummer + '" value="' +  unescape(objprijsineuros.value) + '">' + unescape(objprijsineuros.value) + 
          '  </td> ' +
          '  <td> ' +
          '&euro;&nbsp;<input READONLY  type="text" class="prijsregeltotaal"  name="totaal' + iVolgnummer + '" id="totaal' + iVolgnummer + '"> ' +
          '  </td> ' +
          '  <td width="20"> ' +
          '    <a href="#" onClick="document.forms[\'frmbestellijst\'].aantal' + iVolgnummer + '.value=0;' + sOnChange + '; location.reload(); "><img src="/basket/wastebasket.gif" alt="Verwijder" border="0"></a> ' +
          '  </td> ' +
          '</tr>'
        ); 
			winkelwagentjeLeeg = false;
			
		} else {
			// winkelwagentje.verwijderProduct(iUniqueInternalID);
		};
		
    }
	

	if (winkelwagentjeLeeg==true) {
		document.write('<tr><td colspan="6">Uw winkelwagen is leeg.</td></tr>\n\n');
		
		// verwijder andere rijen...
		kop = document.getElementById("bestelkop");
		kop.style.display="none";

	} else {
	
		document.write('<tr><td colspan="4" align="right"><input type="submit" id="bestelknop" name="bestelknop" value="bestel"></td><td colspan="2">&nbsp;</td></tr>\n\n');
	
	}
			

/************************** :editable **************************/
  }


  /*
  ' function  : calculateTotals
  ' overview  : calculates the totals in the order list. this function should be called after every change in the fields that should change the prices, subtotals or totals. 
  '             this function should probably always be adapted according to the desired methods of order calculation
  ' arguments : 
  ' return    : 
  ' example   : 
  ' note      : 
  */
  function calculateTotals()
  {
/************************** editable: **************************/
    // bereken per product het totaal
    var productnr = 1;
    var subtotaal = 0, totaaltotaal = 0;
    var verzendkosten, btw;
    while (productnr < document.forms['frmbestellijst'].elements.length)
    {
      if (document.forms['frmbestellijst'].elements['aantal' + productnr]) 
      {
        var aantal = parseInt(document.forms['frmbestellijst'].elements['aantal' + productnr].value);
        var prijs = document.forms['frmbestellijst'].elements['sorteerprijs' + productnr].value/100;

        
        if (!isNaN(aantal))  
        {

          document.forms['frmbestellijst'].elements['totaal' + productnr].value = parseCurrency(aantal * prijs);
        }
        
        // subtotaal verhogen 
        subtotaal += parseFloat('0' + document.forms['frmbestellijst'].elements['totaal' + productnr].value);

      }
      // volgende product
      productnr++;
    }
	/*
    // zet het totaal van de totalen
    document.forms['frmbestellijst'].elements['subtotaal'].value = parseCurrency(subtotaal);

  
    // bepaal verzendkosten
    if (subtotaal < 100) 
      verzendkosten = 10
    else
      verzendkosten = 0

    // geef de verzendkosten weer
   document.forms['frmbestellijst'].elements['verzendkosten'].value = parseCurrency(verzendkosten);
     

    // bereken het eindtotaal inclusief verzendkosten
    document.forms['frmbestellijst'].elements['totaaltotaal'].value = parseCurrency(subtotaal + verzendkosten);
*/
/************************** :editable **************************/
   }








  /*
  ' function  : getHTMLForOptionList
  ' overview  : returns the html code for an option list (this function does not do a document.write)
  ' arguments   : [in] sOptions, a tilde ~ separated list with the values in the option list e.g. 'S~M~L~XL'
  '               [in] sSelectedOption, the value that is the selected value, this value must be one of the values in the list specified by sOptions, e.g. 'XL'
  '               [in] sFieldname, the html name and id of the pulldown
  '               [in] sOnChange, the onChange event script
  ' return    : (string) html code for an option list/pulldown
  ' example   : getHTMLForOptionList('red~green~blue', 'green', 'colour', 'alert(\'This is the example onchange event script. \')')
  ' note      : 
  */     
  function getHTMLForOptionList(sOptions, sSelectedOption, sFieldname, sOnChange)
  {
    var returnHTML = '';
    var aOptions = sOptions.split('~');

    if ((sOptions == '') || (sOptions == ' ')) 
    {
      returnHTML += '<input type="hidden" value="" name="' + sFieldname + '" id="' + sFieldname + '"> ';
    }
    else
    {
      returnHTML += '<select onChange="' + sOnChange + '" name="' + sFieldname + '" id="' + sFieldname + '">';
      
      for(var i = 0; i < aOptions.length; i++)
      {
        if (aOptions[i] == sSelectedOption)
          returnHTML += '<option selected>' + aOptions[i] + '</option>';
        else
          returnHTML += '<option value="' + aOptions[i] + '">' + aOptions[i] + '</option>';
      }

      returnHTML += '</select>';
    }
    return returnHTML;
  }
  

  /*
  ' function  : parseCurrency
  ' overview  : returns a string that represents the given value with two decimals behind the decimal separator
  ' arguments : [in] value, a number (not necessarily a whole number i.e. 7.75 is a valid number)
  ' return    : string presenting the number is a price
  ' example   : parseCurrency(8) returns '8.00' and parseCurrency(7.777) returns '7.78'
  ' note      : 
  */
  function parseCurrency(value) {
    lowValue = Math.floor(value);
    var cents = 100*(value-lowValue) + 0.6;
    if (cents > 99) {
      returnNumber = lowValue ++;
      returnNumber += ".00";
    }
    else
    {
      returnNumber = lowValue + ".";
      returnNumber += Math.floor(cents/10);
      returnNumber += Math.floor(cents%10);
    }
    return returnNumber;
  }



//-->


