/* function to retrieve active products with certain selection (selection is html select object) from database - result stored in response */
function retrieveproducts(selection)
	{
	var min='';
	var max='';	
	var minnumberofpralines='';
	var maxnumberofpralines='';
	var productselection='';
	if (selection != null)
		{
		if (selection.id=='type1')
			{
			var type1=selection.options[selection.selectedIndex].value;
			/* build shop title */
			if (selection.selectedIndex==0)
				{
				productselection=occasionslanguages[0][index].optionlabel;
				}
			else
				{
				productselection=occasionslanguages[0][index].optionlabel+'<span style="font-size:11pt"> &raquo '+flavourslanguages[selection.selectedIndex][index].optionlabel+'</span>';
				}
			/* reset other selections */
			$('type2').selectedIndex=0;
			$('pricelevel').selectedIndex=0; 
			/* $('numberpralines').selectedIndex=0;*/
			}
		if (selection.id=='type2')
			{
			var type2=selection.options[selection.selectedIndex].value;
			/* build shop title,  in case of first occasion show top level occasion as title */
			if (selection.selectedIndex==0)
				{
				productselection=occasionslanguages[0][index].optionlabel;
				}
			else
				{
				productselection=occasionslanguages[0][index].optionlabel+'<span style="font-size:11pt"> &raquo '+occasionslanguages[selection.selectedIndex][index].optionlabel+'</span>';
				}

			/* reset other selections */
			$('type1').selectedIndex=0;
			/* $('numberpralines').selectedIndex=0; */
			$('pricelevel').selectedIndex=0; 

			}

		if (selection.id=='pricelevel')
			{
			min=pricelevelDB[selection.selectedIndex].min;
			max=pricelevelDB[selection.selectedIndex].max;

			/* build shop title */
			if (selection.selectedIndex==0)
				{
				productselection=occasionslanguages[0][index].optionlabel;
				}
			else
				{
				productselection=occasionslanguages[0][index].optionlabel+'<span style="font-size:11pt"> &raquo '+pricelevelDB[selection.selectedIndex].label[index]+'</span>';
				}
			/* reset other selections */
			$('type1').selectedIndex=0;
			$('type2').selectedIndex=0;	
			/* $('numberpralines').selectedIndex=0;	*/	
			} 

		if (selection.id=='numberpralines')
			{
			minnumberofpralines=numberofpralinesDB[selection.selectedIndex].min;
			maxnumberofpralines=numberofpralinesDB[selection.selectedIndex].max;

			/* build shop title */
			if (selection.selectedIndex==0)
				{
				productselection=occasionslanguages[0][index].optionlabel;
				}
			else
				{
				productselection=occasionslanguages[0][index].optionlabel+'<span style="font-size:11pt"> &raquo '+numberofpralinesDB[selection.selectedIndex].label[index]+'</span>';
				}
			/* reset other selections */
			$('type1').selectedIndex=0;
			$('type2').selectedIndex=0;	
			$('pricelevel').selectedIndex=0; 
			} 

		if (selection.id=='discoverytour')
			{
			var type1='samples';
		
			/* build shop title */
			productselection=discovery[index];

			/* reset other selections */
			$('type1').selectedIndex=0;
			$('type2').selectedIndex=0;
			$('pricelevel').selectedIndex=0;
			}
		/* take focus from drop down lists when drop down list was used to retrieve products */
		selection.blur();
		}
	else
		{
		/* display 'All Gifts' in different languages as Shop title */
		productselection=occasionslanguages[0][index].optionlabel;

		$('type2').selectedIndex=0;
		$('type1').selectedIndex=0;
		$('pricelevel').selectedIndex=0;
		/* $('numberpralines').selectedIndex=0;*/

		/* force all products selection */
		var type1='All';
		}
	/* show loading message in correct language while retrieving data */
	$('loadingmessage').innerHTML=messages[4][index];	
	$('loadingpanel').style.display='block';
	new Ajax.Request('../php/retrieveproducts.php',	
				{			
				method:'post',
				parameters:{type1:type1,type2:type2,language:index,min:min,max:max,minnumberofpralines:minnumberofpralines,maxnumberofpralines:maxnumberofpralines},
				onComplete: function(transport)
					{
					var response = transport.responseText || "no response text";
					retrievedproductsarray=response.split('%');
					/* build shop with retrieved data from database */
					buildshop(productselection);
					},
				onFailure:function()
					{
					alert('Data could not be retrieved');
					}
				}); 

	var menulistitems=$('menuitems').getElementsByTagName('li');

	for (i=0;i<menulistitems.length;i++)
		{
		menulistitems[i].style.color='black';
		menulistitems[i].style.fontWeight='normal';
		}
	$('index').style.color='yellow';
	$('index').style.fontWeight='bold';

	}



function retrievesamples()
	{
	/* show loading message in correct language while retrieving data */
	$('loadingmessage').innerHTML=messages[4][index];	
	$('loadingpanel').style.display='block';
	$('type1').selectedIndex=0;
	$('type2').selectedIndex=0;
	$('pricelevel').selectedIndex=0;
	new Ajax.Request('../php/retrievesamples.php',	
				{			
				method:'post',
				parameters:{language:index},
				onComplete: function(transport)
					{
					var response = transport.responseText || "no response text";
					/* build sample page with retrieved data from database */
					buildshop(response,null,discovery[index],null);
					},
				onFailure:function()
					{
					alert('Data could not be retrieved');
					}
				}); 
	}

/* function to retrieve cart detail from server session */
function retrievecartdetail()
	{

	$('midden').innerHTML='';
	new Ajax.Request('../php/retrievecartdetail.php',
		{
		method:'post',
		onComplete:function(transport)
			{
			var response = transport.responseText || "no response text";
			if (response.indexOf('leeg')==-1)
				{
				builddetailcart(response);
				}
			else
				{
				alert(messages[2][index]);
				/* when cart is empty go back to shop */
				retrieveproducts();
				$('cart').innerHTML=carttext[0][index];
				}
			},
		onFailure:function()
			{
			alert('Cart detail could not be retrieved !');
			}
		});
			
	}



/* function to calculate earliest deliver date - takes leadtime in number of days as parameter */
function getdeliverydate(leadtime)
	{
	/* get today's date from server and add leadtime */
	new Ajax.Request('../php/getserverdate.php',
		{
		method:'post',
		onComplete:function(transport)
			{
			var response = transport.responseText || "no response text";
			/* getserverdate returns current time (in hours) and current date on server */
			var hourdate=response.split('|');
			var deliverydate=new Date(hourdate[1]);
			/* if hour=12 or later, add 1 day to the transportation leadtime (only orders received before 12 are shipped same day */
			/* ordercutofftime is global parameter set in globalparam.js */
			if (hourdate[0]>ordercutofftime)
				{
				leadtime=leadtime+1;
				}
			/* calculate earliest delivery date and display */
			deliverydate.setDate(deliverydate.getDate()+leadtime);
			/* if deliverydate is saturday or sunday, add 2 or 1 days */
			if(deliverydate.getDay()=='0')
				{
				deliverydate.setDate(deliverydate.getDate()+1);
				}
			if(deliverydate.getDay()=='6')
				{
				deliverydate.setDate(deliverydate.getDate()+2);
				}
			$('deliverydate').innerHTML=deliverydate.toLocaleDateString();
			},
		onFailure:function()
			{
			alert('Delivery date could not be retrieved !');
			}
		});
	}

/* function to show cart summary */
function showcartsummary()
	{
	$('cart').innerHTML='<img src="../images/ajax-loader.gif"></img>';
	new Ajax.Request('../php/retrievecartdetail.php',
		{
		method:'get',
		onComplete:function(transport)
			{
			var response = transport.responseText || "no response text";
			updatecart(response);
			},
		onFailure:function()
			{
			}
		});

	}

/* function to put item data in cart - session on server */
function putincart(id,description,quantity,price,weight)
	{
	$('cart').innerHTML='<img src="../images/ajax-loader.gif"></img>';
	new Ajax.Request('../php/putincart.php',	
				{			
				method:'get',
				parameters:{id:id,description:description,quantity:quantity,price:price,weight:weight},
				onComplete: function(transport)
					{
					var response = transport.responseText || "no response text";
					updatecart(response);
					},
				onFailure:function()
					{
					alert('Failed to put item in cart');
					}
				});
	}

/* function to remove item from cart - session on server */
function removefromcart(i) 
	{
    	var answer = confirm (messages[0][index]);
    	if (answer)
		{
			$('loadingmessage').innerHTML=messages[3][index];
			$('loadingpanel').style.display='block';
			new Ajax.Request('../php/deletecartline.php',
			{
			method:'get',
			parameters: {i:i},
			onComplete: function(transport)
				{
				var response = transport.responseText || "no response text";
				updatecart(response);
				$('loadingpanel').style.display='none';
				retrievecartdetail();
				},
			onFailure:function()
				{
				alert('Something went wrong');
				}
			});
		} 
  	}

/* function to update line item in cart */
function updatecartline(i,qty)
	{
	new Ajax.Request('../php/updatecartline.php',
		{
		method:'post',
		parameters:{i:i,qty:qty},
		onComplete:function(transport)
			{
			var response = transport.responseText || "no response text";
			retrievecartdetail();
			showcartsummary();
			},
		onFailure:function()
			{
			alert('quantity could not be updated');
			}
		});
	}

/* function to retrieve shipping info - session on server */
function retrieveshipping()
	{
	new Ajax.Request('../php/retrieveshipping.php',
		{
		method:'post',
		onComplete:function(transport)
			{
			var response = transport.responseText || "no response text";
			if (response.indexOf('leeg')==-1)
				{
				var shippinginfoitems=response.split('|');
				$('shippingname').value=shippinginfoitems[0];
				$('shippingaddress1').value=shippinginfoitems[1];
				$('shippingaddress2').value=shippinginfoitems[2];
				$('shippingcity').value=shippinginfoitems[3];
				$('shippingzip').value=shippinginfoitems[4];
				setselectvalue($('shippingcountry'),shippinginfoitems[5]);
				if (shippinginfoitems[7]=='y')
					{
					$('wishcard').checked=true;
					}
				else
					{
					$('wishcard').checked=false;
					}
				$('personalmessage').value=shippinginfoitems[8];
				}
			else
				{
				}
			},
		onFailure:function()
			{
			alert('Shipping info could not be retrieved');
			}
		});
	}


/* function to retrieve shipping info - session on server */
function retrievebilling()
	{
	new Ajax.Request('../php/retrievebilling.php',
		{
		method:'post',
		onComplete:function(transport)
			{
			var response = transport.responseText || "no response text";
			if (response.indexOf('leeg')==-1)
				{
				var billinginfoitems=response.split('|');
				$('emailaddress').value=billinginfoitems[0];
				$('billingname').value=billinginfoitems[1];
				$('billingaddress1').value=billinginfoitems[2];
				$('billingaddress2').value=billinginfoitems[3];
				$('billingcity').value=billinginfoitems[4];
				$('billingzip').value=billinginfoitems[5];
				setselectvalue($('billingcountry'),billinginfoitems[6]);
				if(!billinginfoitems[7]=='')
					{
					$('companyvat').checked=true;
					companyvat();
					$('companyname').value=billinginfoitems[7];
					$('companyaddress1').value=billinginfoitems[8];
					$('companyaddress2').value=billinginfoitems[9];
					$('companycity').value=billinginfoitems[10];
					$('companycountry').value=billinginfoitems[11];
					}
				}
			else
				{
				}
			},
		onFailure:function()
			{
			alert('Billing info could not be retrieved');
			}
		});
	}


function updateshipping()
	{
	if (isNotEmpty($('shippingname')) && isNotEmpty($('shippingaddress1')) && isNotEmpty($('shippingcity')) && isNotEmpty($('shippingzip')))
		{	
		var countryindex=$('shippingcountry').selectedIndex;
		if ($('wishcard').checked)
			{
			var wishcard='y';
			}
		else
			{
			var wishcard='n';
			}
		new Ajax.Request('../php/updateshipping.php',
			{
			method:'post',
			parameters:{shippingname:$('shippingname').value,shippingaddress1:$('shippingaddress1').value,shippingaddress2:$('shippingaddress2').value,shippingcity:$('shippingcity').value,shippingzip:$('shippingzip').value,shippingcountry:$('shippingcountry').options[countryindex].text,shippingcharge:$('shippingcountry').options[countryindex].value,wishcard:wishcard,personalmessage:$('personalmessage').value},
			onComplete: function(transport)
				{
				billing();
				},
			onFailure:function()
				{
				alert('ERROR : shipping info could not be registered');
				}
			});
		}
	}

function updatebilling()
	{
	if($('companyname'))
		{
		var companyname=$('companyname').value;
		var companyaddress1=$('companyaddress1').value;
		var companyaddress2=$('companyaddress2').value;
		var companycity=$('companycity').value;
		var companycountry=$('companycountry').value;
		var companyvat=$('companyvat').value;
		}
	else
		{
		var companyname='';
		var companyaddress1='';
		var companyaddress2='';
		var companycity='';
		var companycountry='';
		var companyvat='';
		}
	if (isNotEmpty($('emailaddress')) && isNotEmpty($('billingname')) && isNotEmpty($('billingaddress1')) && isNotEmpty($('billingcity')) && isNotEmpty($('billingzip')))
		{
		var countryindex=$('billingcountry').selectedIndex;
		if(isEmailAddress($('emailaddress')))
			{
			new Ajax.Request('../php/updatebilling.php',
				{
				method:'post',
				parameters:{emailaddress:$('emailaddress').value,billingname:$('billingname').value,billingaddress1:$('billingaddress1').value,billingaddress2:$('billingaddress2').value,billingcity:$('billingcity').value,billingzip:$('billingzip').value,billingcountry:$('billingcountry').options[countryindex].text,companyname:companyname,companyaddress1:companyaddress1,companyaddress2:companyaddress2,companycity:companycity,companycountry:companycountry,companyvat:companyvat},
				onComplete: function(transport)
					{
					var response = transport.responseText || "no response text";
					/* register order and retrieve all saved information to display on final confirmation sheet */
					registerandretrieve();
					},
				onFailure:function()
					{
					alert('ERROR : billing info could not be registered');
					}
				});
			}
		}
	}


function registerandretrieve()
	{
	new Ajax.Request('../php/registerorder.php',
		{
		method:'post',
		onComplete:function(transport)
			{
			var response = transport.responseText || "no response text";
			if (response.indexOf('NOK')>-1)
				{
				alert('Your order could not be registered. Please contact us by phone or email');
				}
			else
				{
				new Ajax.Request('../php/retrieveall.php',
					{
					method:'post',
					onComplete: function(transport)
						{
						var response = transport.responseText || "no response text";
						/* display saved information on confirmation sheet */
						confirmation(response);
						},
					onFailure:function()
						{
						alert('ERROR : confirmation info could not be retrieved');
						}
					});	
				}
			},
		onFailure:function()
			{
			}
		});
	}



function cancel()
	{
	new Ajax.Request('../php/clearall.php',
		{
		method:'post',
		onComplete:function(transport)
			{
			retrieveproducts();
			showcartsummary();
			alert('All information was cleared !');
			},
		onFailure:function()
			{
			alert('Information could not be cleared');
			}
		});
	}

