// v1.01 jc 18-07-2007 added del_from_cart
// v1.02 ka 19-07-2007 text changes


function add_cart(artnum, e)
{
	getDataReturnText("add_artnum_to_cart.php" +	// call add_artnum_to_cart.php 
		"?artnum=" + artnum +						// artnum
		"&ms=" + new Date().getTime(),				// random ms value to prevent caching
		update_cart_counter);				// which function should be called when PHP answers			

	var msg = document.getElementById('cart_message');
//	debugger;
	msg.innerHTML = '<b>' + artnum + '</b> is added to your cart. <img src="gfx/thumby.gif" width="15" height="15" border="0"> <b>';

	page_X_Offset = document.body.scrollLeft;
	page_Y_Offset = document.body.scrollTop;
	zet_x = e.offsetX?(e.x):e.clientX;
	zet_y = e.offsetY?(e.y):e.clientY;
	zet_x += page_X_Offset;
	zet_y += page_Y_Offset;

	msg.style.top = zet_y - 32;
	msg.style.left = zet_x + 20;
	msg.style.display = 'inline';

	merk_artikel(artnum);	// zet vinkje

	setTimeout("removeMessage()", 1000);
}


function check_cart()
{
	getDataReturnText("check_cart.php" +	// call add_artnum_to_cart.php 
		"?ms=" + new Date().getTime(),		// random ms value to prevent caching
		update_cart_counter);				// which function should be called when PHP answers			
}


function del_from_cart(artnum)
{
	getDataReturnText("del_artnum_from_cart.php" +	// call del_artnum_from_cart.php 
		"?artnum=" + artnum +						// artnum
		"&ms=" + new Date().getTime(),				// random ms value to prevent caching
		done_updating_cart);						// which function should be called when PHP answers			
}


function done_updating_cart(tekst)
{
	if( tekst == 'success' )
	{
		window.location.href = "cart.php";	// reload page upon success
	}
	else alert(tekst);						// display error message
}


function dummy()
{
	var a=1;
}

//  getDataReturnText(url, callback) 
//    ** Uses the GET method to get text from the server. **
//    Gets text from url, calls function named callback with that text.
//    Use when you just want to get data from an URL, or can easily
//    encode the data you want to pass to the server in an URL, such as 
//    "http://localhost/script.php?a=1&b=2&c=hello+there".
//    Example: getDataReturnText("http://localhost/data.txt", doWork); 
//    Here, the URL is a string, and doWork is a function in your own 
//    script.


function getDataReturnText(url, callback)
{ 
  var XMLHttpRequestObject = false; 

  if (window.XMLHttpRequest) {
    XMLHttpRequestObject = new XMLHttpRequest();
  } else if (window.ActiveXObject) {
    XMLHttpRequestObject = new
     ActiveXObject("Microsoft.XMLHTTP");
  }

  if(XMLHttpRequestObject) {
    XMLHttpRequestObject.open("GET", url);

    XMLHttpRequestObject.onreadystatechange = function()
    { 
      if (XMLHttpRequestObject.readyState == 4 &&
        XMLHttpRequestObject.status == 200) { 
          callback(XMLHttpRequestObject.responseText);
          delete XMLHttpRequestObject;
          XMLHttpRequestObject = null;
      } 
    } 

    XMLHttpRequestObject.send(null);
  }
}


function merk_artikel(artnum)
{
	document.getElementById(artnum + '*').className = "form_ok"; 
	document.getElementById(artnum + '*').innerHTML = "&radic;"; 
}


function mo(a)
{	// give button the button stylesheet, and the mouse_over style sheet
	a.className = 'butt butt_mo';
}


function mg(a)
{	// give button the button stylesheet, and the mouse_out style sheet
	a.className = 'butt butt_mg';
}


function ref_to(a)
{	// function to respond to button clicks
	var b = a.getAttribute('href'); // mozilla fix
	window.location = b;
}


function removeMessage()
{
	document.getElementById('cart_message').style.display = 'none';
}


function update_cart_counter(tekst)
{
	document.getElementById('cart_counter').innerHTML = tekst;
}


function update_cart_qty(form_to_check)
{
	var how_many	= form_to_check.length;					// how many form elements are there
	for(element=0;  element < how_many; element++)			// traverse over them
	{
		var item	= form_to_check[element];			// get input element
		var artnum	= item.getAttribute("artikel");		// get artikel(_nummer)
		var orgqty	= item.getAttribute("orgqty");		// get artikel(_nummer)
		var waarde	= item.value;						// get aantal nieuw

		reg_exp		= new RegExp("^[0-9]+$");			// integer
		if(!reg_exp.test(waarde) ) 
		{
			if(artnum != null) alert("this number: [" + waarde + "] is not a positive integer");
		}
		else
		{
			if( waarde == '0' ) del_from_cart(artnum);
			else
			{
				if ( waarde != orgqty )
					getDataReturnText("update_qty_in_cart.php" +	// call update_qty_in_cart.php 
						"?artnum=" + artnum +						// artnum
	 					"&waarde=" + waarde +						// aantal nieuw
	 					"&random=" + Math.random() +				// random waarde toevoegen
	 					"&ms=" + new Date().getTime(),				// random ms value to prevent caching
						dummy);									// which function should be called when PHP answers			
				
			}
		}
	}
	done_updating_cart('success');
}
