
function displayShoppingCart(doc, cartArticles)
{//f
  var n = cartArticles.length;
//  alert(orderid);
  doc.close();
  doc.open();
  doc.writeln('<HEAD>');
  doc.writeln('<TITLE></TITLE>');
  doc.writeln('<SCR' + 'IPT>');
  doc.writeln('function PrintLijst() {');
  doc.writeln('top.frames.mainFrames.frames.basket.focus();');
  doc.writeln('top.frames.mainFrames.frames.basket.print();');
  doc.writeln('}');
  doc.writeln('</SC' + 'RIPT>');
  doc.writeln('<link rel="stylesheet" type="text/css" href="layout/css/generic.css">');
  doc.writeln('</HEAD>');
  doc.writeln('<body marginwidth="3" marginheight="0" topmargin="0" leftmargin="3" class="body">');
  doc.writeln('<form name="cart" id="cart" method="POST"'
    + ' action="OpsOfVerz.asp"  target="_parent">');
  doc.writeln('<input type="hidden" name="orderid" value="' + orderid + '">');
  doc.writeln('<input type="hidden" name="command" value="">');
  doc.writeln('<input type="hidden" name="referentie" value="' + referentie + '">');
  doc.writeln('<input type="hidden" name="aantal" value="' + n + '">');

	doc.writeln('<TABLE BORDER="0" height="23" WIDTH="100%" bordercolor="#CCCCD6" cellpadding="0" cellspacing="0">');
	doc.writeln('<TR>');
	if (referentie=="")
		{doc.writeln('<TD BGCOLOR="#666666" height="23" width="50%" CLASS="koptext">&nbsp;<B>'+ orderHeaderNieuw +'</B></TD>');}
	else
		{doc.writeln('<TD BGCOLOR="#666666" width="50%" height="23" CLASS="koptext">&nbsp;<B>'+ orderHeader + referentie + '</B></TD>');}
	doc.writeln('<TD BGCOLOR="#666666" height="15" width="50%" ALIGN="right" VALIGN="top"><A HREF="javascript: void 0" onClick="top.frames.mainFrames.frames.basket.print()" class="sublink"><IMG SRC="layout/gfx/print-ico.gif" WIDTH="16" HEIGHT="14" BORDER="0">&nbsp;&nbsp;' + printHeader + '</A>&nbsp;</TD>');
	doc.writeln('</TR>');
	doc.writeln('</TABLE>');
  
 
  		doc.writeln('<TABLE  border="0" bordercolor="#999999" BGCOLOR="#999999" CELLPADDING="0" CELLSPACING="0" WIDTH="100%" class="inputtext" >');
			doc.writeln('<TR>');
			doc.writeln('<td width="95" align=left class="inputtext">&nbsp;' + codeHeader + '</td>');
			doc.writeln('<td width="" align=left class="inputtext">&nbsp;' + omschrijvingHeader + '</td>');
			doc.writeln('<td width="36" align=center class="inputtext">' + afslagNRHeader + '</td>');
			doc.writeln('<td width="50" align=right class="inputtext">' + prijsHeader  + '&nbsp;&nbsp;</td>');
			doc.writeln('<td width="30" align=left class="inputtext">' + eenheidHeader + '&nbsp;&nbsp;</td>');
			doc.writeln('<td width="46" align=right class="inputtext">' + aantalHeader + '&nbsp;</td>');
			doc.writeln('</TR>');
		doc.writeln('</TABLE>');
	  doc.writeln('<TABLE WIDTH="100%" CELLPADDING="0" CELLSPACING="0" BORDER="0" bordercolor="#CCCCCC">');
if (top.LoggedOn == 0)
{
      doc.write('<tr>');
      doc.write('<td width="100%" align=center class="ltbl">' + meldingLogEerstAan + '</td>');
      doc.writeln('</tr>');
}
else {
if (n>=1)
{
  var vorige_artgroep_id = 0;
  for (var i = n-1; i >= 0; i--)
  {
   var tdClass = "";
   var strCounter = String(i);
   if (strCounter.charAt(strCounter.length - 1) == "1" || strCounter.charAt(strCounter.length - 1) == "3" || strCounter.charAt(strCounter.length - 1) == "5" || strCounter.charAt(strCounter.length - 1) == "7" || strCounter.charAt(strCounter.length - 1) == "9")
   	{tdClass = "ltbl";}
   else
	{tdClass = "dtbl";}
    var articleIdCH = cartArticles[i].articleIdCH;
    var articleId = cartArticles[i].articleId;
    var quantity = cartArticles[i].quantity;
    var description1 = cartArticles[i].description1;
    var msgLevertijd = cartArticles[i].msgLevertijd;
    var art_unit = cartArticles[i].art_unit;
	var afslagNR = cartArticles[i].afslagNR;
    var normalPrice = cartArticles[i].de_Prijs;
	var prijs_eenheid = cartArticles[i].prijs_eenheid;
	var ag_code = cartArticles[i].ag_code;

      doc.write('<tr>');
	  
	  //art_code
      doc.write('<td width="95" align=left class="' + tdClass + '">'
	   + articleId
        + '&nbsp;</td>');

	  //omschrijving
      doc.write('<td width="" align=left class="' + tdClass + '">');
	  doc.write(description1.replace(/QXQ/g,"'"));
	  if (AfslagOfNiet(ag_code)==1){
	  doc.write('&nbsp;&nbsp;<A href="#" class="linkBlue" onClick="javascript:top.ShowAfslagNummers(\'' + ag_code +'\');">[nr]</A>');
	  }
	  if (msgLevertijd!='') {doc.write('<br><font color="red">' + meldingLeverdatum + msgLevertijd + '</font>')}
      doc.write('</td>');

	  //afslag-nummer
	  //Zie toelichting index-pagina voor CheckBusy-variabele.
	  doc.write('<td width="36" align=center class="' + tdClass + '">');

	  if (AfslagOfNiet(ag_code)!==1)
	  {doc.write('&nbsp;<input type="hidden" class="input"');}
	  else 
	  {doc.write('<input type="tekst" class="input"');}
	  
	  doc.write(' align="right" name="afslagNR_' + i
        + '" value="' + afslagNR + '" size=3 maxlength="3" '
    + 'onBlur="top.CheckBusy=1;top.quantityCheckAfslagNR(this, 0, 999,' + i + ')">');
//    + 'onBlur="top.CheckBusy=1;top.quantityCheckAfslagNR(this, 0, 999,\'' + articleIdCH  + '\',' + i + ')">');
      doc.writeln('</td>');

	  //Prijs
	  doc.write('<td width="50" align=right class="' + tdClass + '">'
	      + formatCurrency(normalPrice) + '&nbsp;</td>');

	  //Eenheid
      doc.write('<td align=right width="30" class="' + tdClass + '">&nbsp;' + art_unit + '</td>');

	  //Aantal
	  //Zie toelichting index-pagina voor CheckBusy-variabele.
	  doc.write('<td width="46" align=center class="' + tdClass + '">'
		+ '<input type="text" align="center" name="aantal_' + i
        + '" value="' + quantity + '" size=5 maxlength="5" '
    + 'onBlur="top.CheckBusy=1;top.quantityCheck(this, top.minAantal, top.maxAantal,' + i + ')">');
//    + 'onBlur="top.CheckBusy=1;top.quantityCheck(this, top.minAantal, top.maxAantal,\'' + articleIdCH  + '\',' + i + ')">');
	
	  doc.write(
		'<input type="hidden" name="articleIdCH_' + i + '" value="' + articleIdCH + '">'
		+ '<input type="hidden" name="articleId_' + i + '" value="' + articleId + '">'
		+ '<input type="hidden" name="oms_' + i + '" value="' + description1 + '">'
		+ '<input type="hidden" name="prijs_' + i + '" value="' + normalPrice + '">');
	  if (AfslagOfNiet(ag_code)==1)
	  {doc.writeln('<input type="hidden" name="blnAfslag_' + i + '" value="1">');}
	  else
	  {doc.writeln('<input type="hidden" name="blnAfslag_' + i + '" value="0">');}
	  doc.writeln('</td>');
      doc.writeln('</tr>');
  }
}
else
{
      doc.write('<tr>');
      doc.write('<td width="100%" align=centre class="ltbl">' + meldingLegeBasket + '</td>');
      doc.writeln('</tr>');

}
}
  doc.writeln('</table>');
  doc.writeln('</form>');
  doc.writeln('</body>');
  doc.close();
}//f


function Article (articleIdCH,articleId, quantity, description1, msgLevertijd, art_unit,afslagNR, de_Prijs, ag_code)
{
  this.articleIdCH = articleIdCH;
  this.articleId = articleId;
  this.quantity = quantity/100;
  this.originalQuantity = this.quantity;
  this.description1 = description1.replace(/QXQ/g, "'");
  this.msgLevertijd = msgLevertijd;
  this.art_unit = art_unit;
  this.afslagNR = afslagNR;
  this.originalAfslagNR = afslagNR;
  // Prijs wordt weer door 1000 gedeeld, omdat bij binnenhalen x 1000 is gedaan.
  // Dit was daar nodig omdat komma's anders problemen opleveren.
  this.de_Prijs = de_Prijs * 1/1000;
  this.ag_code = ag_code;
}

function articleRow(doc, art_nr_systeemCH,art_nr_systeem, omschrijving1,msgLevertijd,art_unit, de_prijs,ag_code)
{
  //articles() zijn de artikelen die in het resultaat-scherm staan
  articles[articleCounter] = new top.Article(art_nr_systeemCH,art_nr_systeem,100, omschrijving1,msgLevertijd,
    art_unit, 0, de_prijs,ag_code);
  displayArticleRow(doc, articleCounter, art_nr_systeem, omschrijving1, msgLevertijd,
    art_unit, de_prijs,0);

  articleCounter++;
}


function articleRowWebSite(doc, art_nr_systeemCH,art_nr_systeem, omschrijving1,art_unit, de_prijs,ag_code)
{
  //articles() zijn de artikelen die in het resultaat-scherm staan
  articles[articleCounter] = new top.Article(art_nr_systeemCH,art_nr_systeem,100, omschrijving1,"", 
    art_unit, 0, de_prijs,ag_code);
  displayArticleRow(doc, articleCounter, art_nr_systeem, omschrijving1,
    art_unit, de_prijs,1);

  articleCounter++;
}

function displayArticleRow(doc, articleCounter, art_nr_systeem,
   omschrijving1, msgLevertijd, art_unit, de_Prijs, blnWebSite)
{
  var tdClass = "";
  var strCounter = String(articleCounter);
  if (strCounter.charAt(strCounter.length - 1) == "1" || strCounter.charAt(strCounter.length - 1) == "3" || strCounter.charAt(strCounter.length - 1) == "5" || strCounter.charAt(strCounter.length - 1) == "7" || strCounter.charAt(strCounter.length - 1) == "9")
  {tdClass = "ltbl";}
  else
  {tdClass = "ltbl";}
  doc.write('<tr>');
  doc.write('<td align=left border="1" bordercolor="#ccccd6" class="' + tdClass + '">&nbsp;');
  if (blnWebSite==0) {
  doc.write('<a href="blank.html" class="link"'
      + ' target="hidden" onClick="top.addArticle(top.articles['
      + articleCounter + '])">' + art_nr_systeem + '</a>');}
  else {doc.write(art_nr_systeem);}
  doc.write('</td>');
  doc.write('<td align=left border="1" bordercolor="#ccccd6" class="' + tdClass + '">&nbsp;');
  doc.write(omschrijving1.replace(/QXQ/g,"'") + '&nbsp;');
//  if (msgLevertijd != '') { doc.write('<br>&nbsp;<font color="red">' + meldingLeverdatum + msgLevertijd + '</font>') }
  doc.write('</td>');
  doc.write('</td>');
  doc.write('<td align=right border="1" bordercolor="#ccccd6" class="' + tdClass + '">&nbsp;');
  doc.write(art_unit + '&nbsp;');
  doc.write('</td>');
  doc.write('<td align=right border="1" bordercolor="#ccccd6" class="' + tdClass + '">');
  if (top.LoggedOn == 1) {
	  doc.write(formatCurrency(de_Prijs/1000) + '&nbsp;');}
  else {
	  doc.write('----' + '&nbsp;');}
  doc.write('</td>');
  doc.write('</tr>');
}


function showShoppingCart()
{
  var doc = top.frames.mainFrames.frames.basket.document;
  displayShoppingCart(doc, cartArticles);
}



function addArticle(article)
{
  if (top.LoggedOn == 1) {
    var n = cartArticles.length;
    var total = 0;
    var f = top.frames.mainFrames.frames.basket.document.cart;
	var totaalWijzig = 0;
	//Indien het een afslag-artikel mag het aan de basket worden toegevoegd, ondanks dat
	//het reeds aanwezig is. Indien het geen afslag-artikel is mag het niet meer aan de basket worden
	//toegevoegd indien het al aanwezig is. In dit geval wordt de focus op het artikel gezet.
	if (AfslagOfNiet(article.ag_code)!==1){
	    for (var i = 0; i < n; i++)
	    {
		  //indien reeds aanwezig --> focus
	  		if (article.articleIdCH == cartArticles[i].articleIdCH)
	      	{
		          if (eval("f.aantal_" + i))
	      		  {
			          // article is visible
					  eval("f.aantal_" + i + ".focus()");
					  eval("f.aantal_" + i + ".select()");
			      }
	        	  else
		          {
				  // article is probably not visible, refresh shoppingcart
			          showShoppingCart();
			      }
/*			  
				  updateTotalPrice(totaalWijzig);
*/
		          return; //het artikel is reeds aanwezig, de functie wordt verlaten
	      	  }
	    }
	}
	
	//de index van het nieuwe artikel wordt gelijk aan het aantal dat in de basket aanwezig
	//was, index begint namelijk bij o, aantal bij 1
	article.quantity = article.art_unit;
	article.originalQuantity = article.quantity;
    cartArticles[cartArticles.length] = article;
    totaalWijzig = article.art_unit * article.de_Prijs;
//Ondeerstaande twee regels zijn toegevoegd omdat het anders fout gaat bij artikelen
//met afslagen. Waarschijnlijk een BUG in IE. Door de result-pagina te herladen treedt
//deze vreemd genoeg niet meer op.
//FOUT-omschrijving: wanneer een afslag-artikel toegevoegd is en aantal of afslagnummer
//wordt veranderd. En daarna wordt hetzelfde artikel nogmaals toegevoegd dan wijzigen
//de aantallen en afslagnummers van dezelfde artikelen in de basket. Dit gebeurt niet als de
// bestelling reeds i opgeslagen.
	var resultUrl = top.frames.mainFrames.frames.result.location;
	if (AfslagOfNiet(article.ag_code)==1){
	top.frames.mainFrames.frames.result.location = resultUrl
	}
    top.frames.mainFrames.frames.basket.location = "basketadvies.asp";
	updateTotalPrice(totaalWijzig); }
else {
	alert(meldingLogAan)}
}

function addArticleFromOldOrder(article)
{
    var n = cartArticles.length;
	// vergelijk het toegevoegde artikel met alle artikelen in de basket(cartArticles)
    for (var i = 0; i < n; i++)
    {
  		if (article.articleIdCH == cartArticles[i].articleIdCH)
      	{
		return; //het artikel is reeds aanwezig, de functie wordt verlaten
      	  }
    }
	
	//het artikel zit nog niet in de basket,
	//de index van het nieuwe artikel wordt gelijk aan het aantal dat in de basket aanwezig
	//was, index begint namelijk bij o, aantal bij 1
    cartArticles[cartArticles.length] = article;
}

function updateTotalPrice(delta)
{
	OrderTotaal = OrderTotaal + delta;
	top.frames.mainFrames.frames.totaal.document.totaal.totaal.value = formatCurrency(Math.round(1000*OrderTotaal)/1000);
}


function TweeDecimalenformatCurrency(price)
{
  var text = "";
  // floor geeft van een getal de kleinste integer terug gelijk of kleiner dan getal
  var i = Math.floor(price);
  var decimal = Math.round((price - i) * 100);
  if (decimal >= 100)
  {
    decimal -= 100;
    i += 1;
  }
  var decimalText = "";

  if (decimal == 0)
    decimalText = "00";
  else if (decimal < 10)
    decimalText = "0" + decimal;
  else
    decimalText = "" + decimal;
  var text = "" + i + "," + decimalText;
  return text;
}


function formatCurrency(price)
{
  var text = "";
  // floor geeft van een getal de kleinste integer terug gelijk of kleiner dan getal
  var i = Math.floor(price);
  var decimal = Math.round((price - i) * 1000);
  if (decimal >= 1000)
  {
    decimal -= 1000;
    i += 1;
  }
  var decimalText = "";

  if (decimal == 0)
    decimalText = "000";
  else if (decimal < 10)
    decimalText = "00" + decimal;
  else if (decimal < 100)
    decimalText = "0" + decimal;
  else
    decimalText = "" + decimal;
  var text = "" + i + "," + decimalText;
  return text;
}

function clearArticles()
{
  articles = new Array();
  articleCounter = 0;
}  

function saveValue (item)
{
  originalValue = item.value;
}

function quantityCheck (item, min, max, arraynr)
{
  var valid = false;

if (String(item.value)!==String(cartArticles[arraynr].originalQuantity)) { //Indien niet gewijzigd, voer geen check uit!
 	   if (item.value == "")
		    {
			  //Maak aantal=0, zet valid=true
		      valid = true;
		      item.value = "0";
		    }
 	   else if (isNaN(item.value))
		    { //valid = false
		      alert(meldingAantalNumeriek);
		    }
	   else
		    {
			//Het is een getal. Rond het getal af. Controleer of
			//getal >0 en niet het maximum overschreidt. 
			
			//afronding:item heeft hier werkelijke waarde, dus niet x10
			  item.value = Math.round(item.value);
		      var number = parseInt(item.value);
		      if (number < min)
		        alert(meldingAantalPositief);
		      else if (number > max)
		        alert(meldingMaximumAantal + max);
		      else
				//controleer of het aantal een veelvoud van de eenheid is.
				{
				if (number/cartArticles[arraynr].art_unit == Math.round(number/cartArticles[arraynr].art_unit))
					{valid = true;}
				else
					{alert(meldingVeelvoudVan);}
				}
		      }
	    if (valid)
		      {
      		  updateCartArticles(arraynr);
		      }
	    else
		      {
		      		item.value = cartArticles[arraynr].originalQuantity;
					item.focus();
		      }
}
  top.CheckBusy = 0;
  return valid;
}

function quantityCheckAfslagNR (item, min, max, arraynr)
{
var valid = false;

if (String(item.value)!==String(cartArticles[arraynr].originalAfslagNR)) { //Indien niet gewijzigd, voer geen check uit!
 	   if (item.value == "")
		    {
			  //Maak aantal=0, zet valid=true
		      valid = true;
		      item.value = "0";
		    }
 	   else if (isNaN(item.value))
		    { //valid = false
		      alert(meldingAantalNumeriekAfslag);
		    }
	   else
		    {
			//Het is een getal. Rond het getal af. Controleer of
			//getal >0. 
			  item.value = Math.round(item.value);
		      var number = parseInt(item.value);
		      if (number < min)
		        alert(meldingAantalPositiefAfslag);
		      else
				{valid = true;}
				}
	    if (valid)
		      {
				cartArticles[arraynr].afslagNR = item.value;
				cartArticles[arraynr].originalAfslagNR = item.value;
		      }
	    else
		      {
					item.value = cartArticles[arraynr].originalAfslagNR;
					item.focus();
		      }
}
  top.CheckBusy = 0;
  return valid;
}


function updateCartArticles(arraynr)
{

  var n = cartArticles.length;
  var f = top.frames.mainFrames.frames.basket.document.cart;
  var total = 0;
  var totaalVerschil = 0;
  var order = 0;
	
    if (eval("f.aantal_" + arraynr)) //controle of veld bestaat
	    { 
	      orderStr = eval("f.aantal_" + arraynr + ".value"); //geeft hoeveelheid terug
			// als  AANTAL<>""  EN NIET(geen nummer)
    	  if (orderStr != "" && !isNaN(orderStr))
			      {
    			    order = parseFloat(orderStr); //aantal -> omzetten string naar number
		    	  }
		  //hier update hij cartArticles wanneer hoeveelheid via inputveld veranderd is
		  var NRegelTotaal = order*cartArticles[arraynr].de_Prijs;
//		  alert(NRegelTotaal); 
		  var ORegelTotaal = cartArticles[arraynr].quantity*cartArticles[arraynr].de_Prijs;
//		  alert(ORegelTotaal); 
		  totaalVerschil = NRegelTotaal - ORegelTotaal;
//		  alert(totaalVerschil);
	      cartArticles[arraynr].quantity = order*1;
   	      cartArticles[arraynr].originalQuantity = cartArticles[arraynr].quantity;
//		  alert(cartArticles[arraynr].quantity);
	    }
    else
    { //als veld niet gevonden wordt, kan dat?
      order = cartArticles[arraynr].quantity;
	  totaalVerschil = 0;
    }
updateTotalPrice(totaalVerschil)
}


function toonLaadBericht(doc)
{
  doc.close();
  doc.open();
  doc.write('<HEAD></HEAD>');
  doc.write('<BODY BACKGROUND="gfx/background_bestel_list2.gif">');
  doc.write('<TABLE WIDTH="100%">');
  doc.write('<TR>');
  doc.write('<TD ALIGN=center><B STYLE="font-family: Verdana, Geneva, Arial, Helvetica, sans-serif; font-size: 11px;">' + meldingGeduld1 + '<BR>');
  doc.write('<B>' + meldingGeduld2 + '</B></TD>');
  doc.write('</TR>');
  doc.write('</TABLE>');
  doc.write('</BODY>');
  doc.close();
}

function toonGroepArtikelen(code)
{
	toonLaadBericht(top.frames.mainFrames.frames.result.document);
	top.frames.mainFrames.frames.result.location = "Result.asp?ag_code=" + code;
}

function ZoekOpdracht(ZoekOp,ZoekOpV,Key)
{
	toonLaadBericht(top.frames.mainFrames.frames.result.document);
	top.frames.mainFrames.frames.result.location = "Result.asp" + "?ZOp=" + ZoekOp + "&ZOpV=" + ZoekOpV + "&Key=" + Key;
}
