/*
	SHOPPINGCART CS (CLIENTSIDE) HANDLING
	Ajax shopping cart.
*/


// VALIDATE IF CART-LOGIN IS OKE
function validateCartLogin()
{
	var URL = 'SCore/actions/pageLogin.actions.php?ajaxAction=cartLogin&usr_nm=' + escape(document.getElementById('usr_nm').value) + '&pas_wd=' + escape(document.getElementById('pas_wd').value);
	var RES = doRequest(URL, 'POST');
	
	var MESS_CONT = document.getElementById('cartLoginMessage');

	if(RES!='1')
	{
		MESS_CONT.style.display = 'block';
		MESS_CONT.innerHTML		= 'Login mislukt! Gebruikersnaam of wachtwoord bestaan niet of zijn niet juist!';
	}  
	else
	{
		MESS_CONT.innerHTML		= '';
		MESS_CONT.style.display = 'none';

		window.location = '/?pT=6';
	}
}	


function inCart(pId, summaryTarget, discountOverrule, priceOverrule, action, productQty)							// PUT ARTICLE IN CART
{
	// IS PRODUCT BUYABLE?
	var URL			= 'SCore/actions/shoppingCart.actions.php?ajaxAction=productBuyable&pId=' + pId;
	var RES			= doRequest(URL, 'GET'); 
	var RES_STRING  = RES.split(';;');

	if(RES_STRING[0]=='1')
	{
		var doSend			 = true
		var attributesString = '';

		// CHECK IF THERE IS ANY ATTRIBUTE REQUIRED FIELD / SEND ALL ATTRIBUTE FIELDS
		if(document.getElementById('ATTRIBUTES_' + pId))
		{ 
			var allElements = document.getElementById('ATTRIBUTES_' + pId).elements;

			for(var al=0; al<allElements.length; al++)
			{
				ID		= allElements[al].id;
				NAME	= allElements[al].name;

				TEXT	= ID.replace(/required_/, '');		

				if(ID.match(/required_/gi))
				{
					if(allElements[al].type=='checkbox' && allElements[al].checked===true) ;

					if(allElements[al].value == '')
					{
						doSend = false;

						// ALERT
						alert('U moet \'' + TEXT + '\' nog invullen!');
				
						// COLOR BACKGROUND RED
						if(document.getElementById(ID)) document.getElementById(ID).style.backgroundColor = '#ff9c9c';

						return false;
					}		

					// COLOR BACKGROUND WHITE
					if(document.getElementById(ID)) document.getElementById(ID).style.backgroundColor = '';
				}	
				
				// CREATE ATTRUBUTE_STRING
				attributesString += '&' + allElements[al].name + '=' + allElements[al].value;
			}
		}

		// IF REQUIRED FIELD ISN'T FILLED IN -> RETURN FALSE
		if(doSend==false) return false;

		// ACTUAL CART-ITEM SAVING PROCEDURE
		if(productQty=='' || productQty==undefined) productQty = '1';

		var url		 = 'SCore/actions/shoppingCart.actions.php?ajaxAction=addCart&pId=' + pId + '&QTY=' + productQty + '&dO=' + discountOverrule + '&pO=' + priceOverrule + attributesString;
		var response = doRequest(url, 'GET'); 
	}
	else if(RES_STRING[0]=='2') // FROM PRICE
	{
		window.location = '/?pT=20&id=' + pId;
		return false;
	}
	else
	{
		infoShow(1, 'Dit product kan niet via de website worden besteld. <p>Reden: ' + RES_STRING[1] + '<p>Neem contact op met de helpdesk voor het plaatsen van uw bestelling.', 1);
		return false;
	}
	
	// UPDATE CARTSUMMARY...
	if(action=='1')
	{
		var summaryContainer = document.getElementById(summaryTarget);
		if(summaryContainer && response) summaryContainer.innerHTML = response;
	}
	else
	{
		// TO CART AFTER ADDING ARTICLE
		window.location = '/?pT=5';
	}
}

function updateCart(qtyEl, summaryTarget, cartTarget)		// UPDATE ARTICLE IN CART
{
	var qty		 =  qtyEl.value;
	var pId		 =  (qtyEl.id).replace('QTY', '')

	// UPDATE CART
	var url		 = 'SCore/actions/shoppingCart.actions.php?ajaxAction=updateCart&pId=' + pId + '&qty=' + qty;
	var response = doRequest(url, 'GET'); 

	refreshCarts(pId, summaryTarget, cartTarget);
}

	
function deleteCart(pId, summaryTarget, cartTarget)		// DELETE ARTICLE FROM CART
{
	// DELETE CART
	var url		 = 'SCore/actions/shoppingCart.actions.php?ajaxAction=deleteCart&pId=' + pId;
	var response = doRequest(url, 'GET'); 

	refreshCarts(pId, summaryTarget, cartTarget);
}


function refreshCarts(pId, summaryTarget, cartTarget, MODE)
{
	// REFRESH SUMMARY CART
	var url		 = 'SCore/actions/shoppingCart.actions.php?ajaxAction=showCartSummary';
	var response = doRequest(url, 'GET'); 
	var summaryContainer = document.getElementById(summaryTarget);
	if(summaryContainer && response) summaryContainer.innerHTML = response;

	// REFRESH CART
	var url		 = 'SCore/actions/shoppingCart.actions.php?ajaxAction=showCart&MODE=' + MODE;
	var response = doRequest(url, 'GET'); 

	var cartContainer = document.getElementById(cartTarget);
	if(cartContainer && response) cartContainer.innerHTML = response;
}


function getDiscountCode(CODE_EL)
{
	var DISCOUNT_CODE = CODE_EL.value;
		
	// TEST DISCOUNTCODE ON CHARS
	var CHAR_SET = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
	var DISCOUNT_CODE_ARRAY = DISCOUNT_CODE.split('');
	for(var x=0; x<DISCOUNT_CODE_ARRAY.length; x++)
	{		
		var PATTERN_TO_MATCH = new RegExp(DISCOUNT_CODE_ARRAY[x]);

		if(!CHAR_SET.match(DISCOUNT_CODE_ARRAY[x]))
		{
			infoShow(1, 'U heeft een foutieve/ongeldige kortingscode <br />ingegeven!', '2')
			return false;
		}
	}

	// SET DISCOUNT_CODE SESSION
	var URL = 'SCore/actions/shoppingCart.actions.php?ajaxAction=setCouponCode&value=' + DISCOUNT_CODE;
	var RES = doRequest(URL, 'GET'); 
		
	// REFRESH CARTS
	refreshCarts('', 'shoppingcartHeader', 'orderConfirmContainer', '1');
}


function validateAdressForm(frm)
{
	// FORM VALIDATE
	/* 
		- DOES USERNAME ALREADY EXISTS?
		- DOES EMAILADRES ALREADY EXISTS?
		- DOES EMAILADRES VALIDATE?
		- DOES PASSWORD VALIDATE (CONFIMATION)?
		- DOES OLD PASSWORD MATCHUP?

		- ARE ALL REQIURED FIELDS FILLED?
	*/
	
	// NAAM
	if(document.getElementById('customer_Name').value)
	{
		unsetError('customer_Name');
	} else { setError('<br />U moet nog uw naam ingeven!', 'customer_Name');  return false; }

	// ACHTERNAAM
	if(document.getElementById('customer_SurName').value)
	{
		unsetError('customer_SurName');
	} else { setError('<br />U moet nog uw achternaam ingeven!', 'customer_SurName');  return false; }

	// ADRES
	if(document.getElementById('customer_Address').value)
	{
		unsetError('customer_Address');
	} else { setError('<br />U moet nog uw adres ingeven!', 'customer_Address');  return false; }

	// ADRESNR
	if(document.getElementById('customer_AddressNumber').value)
	{
		unsetError('customer_AddressNumber');
	} else { setError('<br />U moet nog uw huisnummer ingeven!', 'customer_AddressNumber');  return false; }

	// POSTCODE
	if(document.getElementById('customer_ZIP').value)
	{
		unsetError('customer_ZIP');
	} else { setError('<br />U moet nog uw postcode ingeven!', 'customer_ZIP');  return false; }

	// PLAATS
	if(document.getElementById('customer_City').value)
	{
		unsetError('customer_City');
	} else { setError('<br />U moet nog uw woonplaats ingeven!', 'customer_City');  return false; }

	// LAND
	if(document.getElementById('customer_Country').value)
	{
		unsetError('customer_Country');
	} else { setError('<br />U moet nog uw land selecteren!', 'customer_Country');  return false; }

	
	if(document.getElementById('billOn'))
	{
	  if(document.getElementById('billOn').checked==true)
  	  {
		// NAAM
		if(document.getElementById('bill_Name').value)
		{
			unsetError('bill_Name');
		} else { setError('<br />U moet nog uw naam ingeven!', 'bill_Name');  return false; }

		// ACHTERNAAM
		if(document.getElementById('bill_SurName').value)
		{
			unsetError('bill_SurName');
		} else { setError('<br />U moet nog uw achternaam ingeven!', 'bill_SurName');  return false; }

		// ADRES
		if(document.getElementById('bill_Address').value)
		{
			unsetError('bill_Address');
		} else { setError('<br />U moet nog uw adres ingeven!', 'bill_Address');  return false; }

		// ADRESNR
		if(document.getElementById('bill_AddressNumber').value)
		{
			unsetError('bill_AddressNumber');
		} else { setError('<br />U moet nog uw huisnummer ingeven!', 'bill_AddressNumber');  return false; }

		// POSTCODE
		if(document.getElementById('bill_ZIP').value)
		{
			unsetError('bill_ZIP');
		} else { setError('<br />U moet nog uw postcode ingeven!', 'bill_ZIP');  return false; }

		// PLAATS
		if(document.getElementById('bill_City').value)
		{
			unsetError('bill_City');
		} else { setError('<br />U moet nog uw woonplaats ingeven!', 'bill_City');  return false; }

		// LAND
		if(document.getElementById('bill_Country').value)
		{
			unsetError('bill_Country');
		} else { setError('<br />U moet nog uw land selecteren!', 'bill_Country');  return false; }
	  }
	}
	

	// CHECK EMAILADRES
	if(document.getElementById('customer_Email').value)
	{
		var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
		if((document.getElementById('customer_Email').value).match(emailPattern))
		{
			unsetError('customer_Email');

			if(document.getElementById('customer_Email').value != customer_Email_Ref)
			{				
				var url = 'inc/functions/pageLogin.functions.php?ajaxAction=checkValues&checkKey=customerEmail&checkMessage=E-mailadres bestaat reeds!&checkValue=' + document.getElementById('customer_Email').value;
				var response = doRequest(url, 'GET');
				if(response!=''){ setError(response, 'customer_Email');  return false; } 
			}
		} else { setError('<br />Het door u ingegeven e-mailadres is foutief!', 'customer_Email');  return false; }
	} else { setError('<br />U moet nog een e-mailadres ingeven!', 'customer_Email');  return false; }

	
	// CHECK USER NAME
	if(document.getElementById('customer_UserName') && document.getElementById('accountOn').checked===true)
	{
		unsetError('customer_PassWord_Now');
		if((document.getElementById('customer_PassWord_Now') && document.getElementById('customer_PassWord_Now').value!='') || !document.getElementById('customer_PassWord_Now'))
		{
			if(document.getElementById('customer_UserName').value)
			{
				unsetError('customer_UserName');

				if(document.getElementById('customer_UserName').value != customer_UserName_Ref || customer_UserName_Ref=="")
				{
					var url = 'SCore/actions/pageLogin.actions.php?ajaxAction=checkValues&checkKey=customerUserName&checkMessage=Gebruikersnaam bestaat reeds!&checkValue=' + document.getElementById('customer_UserName').value;
					var response = doRequest(url, 'GET');
					if(response!=''){ setError(response, 'customer_UserName');  return false; } 	
				}
			} else { setError('<br />U moet nog een gebruikersnaam ingeven!', 'customer_UserName');  return false; }
			
			// CHECK PASSWORD
			if(document.getElementById('customer_PassWord').value)
			{
				unsetError('customer_PassWord');

				if(document.getElementById('customer_PassWord_Confirm').value)
				{
					unsetError('customer_PassWord_Confirm');
				
					if(document.getElementById('customer_PassWord_Confirm').value!=document.getElementById('customer_PassWord').value)
					{
						setError('<br />Het door u ingegeven wachtwoord en de wachtwoordbevestiging komen niet overeen!', 'customer_PassWord'); 
						setError('', 'customer_PassWord_Confirm');  return false; 
					} else {unsetError('customer_PassWord_Confirm'); unsetError('customer_PassWord');}

				} else { setError('<br />U moet uw wachtwoord nog bevestigen!', 'customer_PassWord_Confirm');  return false; }

			} else { setError('<br />U moet uw wachtwoord ingeven!', 'customer_PassWord');  return false; }
		} else
		{
			if((document.getElementById('customer_PassWord').value!='' && document.getElementById('customer_PassWord_Confirm').value!='') || (document.getElementById('customer_UserName').value != customer_UserName_Ref))
			{
				if((document.getElementById('customer_PassWord_Now') && document.getElementById('customer_PassWord_Now').value==''))
				{
					setError('<br />Om uw logingegevens te kunnen wijzigen dient uw huidige wachtwoord in te voeren!', 'customer_PassWord_Now'); 

					return false;
				}
			}
		}
	}

	document.getElementById(frm.id).submit();
}


// SHIPMENT / PAYMENT CHOISE
function setPaymentMethods(SHIPMENT_METHOD, PAYMENT_TARGET, FORM_TO_SEND)
{
	// GET PAYMENTMETHODS
	var url		 = 'SCore/inc/functions/paymentShipment.functions.php?ajaxAction=SET_PAYMENT_OPTIONS&SID=' + SHIPMENT_METHOD;
	var response = doRequest(url, '');

	if(document.getElementById(PAYMENT_TARGET)) document.getElementById(PAYMENT_TARGET).innerHTML = response;
}

function checkPaymentShipmentSet(PAYMENT_NAME, SHIPMENT_NAME, FORM_TO_SEND)
{
	var CHECK = 0;

	// CHECK PAYMENT
	var PAYMENT_RADIO = document.forms[FORM_TO_SEND].elements[PAYMENT_NAME];
	if(PAYMENT_RADIO)
	{
		var radioLength = PAYMENT_RADIO.length;
		if(radioLength == undefined)
			if(PAYMENT_RADIO.checked)
				CHECK++;
		for(var i = 0; i < radioLength; i++) {
			if(PAYMENT_RADIO[i].checked) {
				CHECK++;
			}
		}
	}

	// CHECK SHIPMENT
	var SHIPMENT_RADIO = document.forms[FORM_TO_SEND].elements[SHIPMENT_NAME];
	if(SHIPMENT_RADIO)
	{
		var radioLength = SHIPMENT_RADIO.length;
		if(radioLength == undefined)
			if(SHIPMENT_RADIO.checked)
				CHECK++;
		for(var i = 0; i < radioLength; i++) {
			if(SHIPMENT_RADIO[i].checked) {
				CHECK++;
			}
		}
	}

	// SEND FORM
	if(CHECK > 1 && document.getElementById(FORM_TO_SEND))
		document.getElementById(FORM_TO_SEND).submit();		 
}






// PAGENUMBERS
function surfToPage(QS, PAGE){
	var e = window.event;
	if(e.keyCode=="13") window.location = "/?" + QS + "&page=" + (PAGE - 1) + "&";
}




// TELL-A-FRIEND
function tellAFriend(PID)
{
	// GET FORM
	var URL = '../SCore/actions/pageCatalogi.actions.php?ajaxAction=tellafriend&ID=' + PID;
	var RES = doRequest(URL, '');

	infoShow(1, RES, '');
}

// DO TELL-A-FRIEND
function doTellAFriend()
{
	// GET FIELDS
	var FRIEND_NAME = document.getElementById('FRIEND_NAME').value;
	var FRIEND_EMAIL = document.getElementById('FRIEND_EMAIL').value;
	var NAME		= document.getElementById('NAME').value;
	var EMAIL		= document.getElementById('EMAIL').value;
	var ID			= document.getElementById('ID').value;

	var emailPattern = /^[a-zA-Z0-9._]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;

	// CHECKS AND BALANCES
	if(FRIEND_NAME=="")
	{
		alert('U moet de naam van uw vriend(in) invoeren!');
		return false;
	}

	if(NAME=="")
	{
		alert('U uw naam invoeren!');
		return false;
	}

	if(FRIEND_EMAIL!="")
	{		
		if(!FRIEND_EMAIL.match(emailPattern))
		{
			alert('Het e-mailadres van uw vriend(in) is niet geldig!');
			return false;
		}
	}
	else
	{
		alert('U moet het e-mailadres van uw vriend(in) invoeren!');
		return false;
	}

	if(EMAIL!="")
	{
		if(!EMAIL.match(emailPattern))
		{
			alert('Uw e-mailadres is niet geldig!');
			return false;
		}
	}
	else
	{
		alert('U moet uw e-mailadres invoeren!');
		return false;
	}
	
	// SEND FORM
	var URL = '../SCore/actions/pageCatalogi.actions.php?ajaxAction=dotellafriend&ID=' + ID + '&FN=' + FRIEND_NAME + '&FE=' + FRIEND_EMAIL + '&N=' + NAME + '&E=' + EMAIL;
	var RES = doRequest(URL, 'POST');
	
	document.getElementById('TELLAFRIEND_CONTENT').innerHTML = RES;
}



// SEND CART EMAIL
function senCartEmail()
{
	// GET CONTAINERS
	var CONTAINER				= document.getElementById('SEND_CART_EMAIL');
	var EMAIL					= document.getElementById('cartSendEmail');
	var EMAIL_BUTTON_CONTAINER	= document.getElementById('SEND_CART_BUTTON_CONTAINER');

	// CHECKS
	if(EMAIL.value=="")
	{
		EMAIL.focus();
		return false;
	}

	// DO SEND
	var URL = '../SCore/actions/shoppingCart.actions.php?ajaxAction=sendCartLink&E=' + EMAIL.value;
	var RES = doRequest(URL, 'POST');

	// SET BUTTON CONTAINER OKE
	if(SEND_CART_BUTTON_CONTAINER)
	{
		SEND_CART_BUTTON_CONTAINER.innerHTML = "<input type='button' id='CART_SEND_EMAIL_BUTTON_CHECK' border='0'>";
	}
}
