function init(){
	calculateTotal();
}

function validate() {
	var showError = false;

	/* required fields */
	var reqfields = document.nafraShop.validateRequired.value.split(',');
	
	for(x in reqfields)
	{
		var currentfield = document.getElementById(reqfields[x]);
		var currentStyle = currentfield.className;
		
		if(!currentfield.value.length) 
		{
			showError = true;
			if(currentfield.className.indexOf('f_error') == -1)
				currentfield.className = currentStyle+' f_error';
		} else {
			if(currentfield.className.indexOf('f_error') != -1)
				currentfield.className = currentStyle.substring(0,currentStyle.indexOf('f_error'));
		}
	}
	
	/* check email */
	var emailfields = document.nafraShop.validateEmail.value.split(',');
	
	for(x in emailfields)
	{
		var currentfield = document.getElementById(emailfields[x]);
		var currentStyle = currentfield.className;
		
		var regex = new RegExp("^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$");
		if(!regex.test(currentfield.value)){
			showError = true;
			if(currentfield.className.indexOf('f_error') == -1)
				currentfield.className = currentStyle+' f_error';
		}
	}
	
	/* required selection */
	var reqselectfield = document.nafraShop.validateSelection.value.split(',');
	
	for(x in reqselectfield)
	{
		var currentfield = document.getElementById(reqselectfield[x]);
		var currentStyle = currentfield.className;
		var radiolength = document.nafraShop[reqselectfield[x]].length;
		var nrChecked = 0;
		
		for (i=0;i<radiolength;i++) {
			if(document.nafraShop[reqselectfield[x]][i].checked)
				nrChecked = nrChecked+1;
		}
		if(nrChecked == 0){
			showError = true;
			if(currentfield.className.indexOf('f_error') == -1)
				currentfield.className = currentStyle+' f_error';
		} else {
			if(currentfield.className.indexOf('f_error') != -1)
				currentfield.className = currentStyle.substring(0,currentStyle.indexOf('f_error'));
		}
	}

	/* if any of the fields is incorrect, show the message */
	if(showError) {
		alert('Gelieve alle vereiste velden correct in te vullen.');
		return false;
	} else {
		return true;
	}
}

function calculateTotal() {
	var delivType = document.nafraShop.f_delivery.value;
	var paymentType = document.nafraShop.f_payment;
	var carttotal = document.nafraShop.carttotal.value;
	var priceField = document.getElementById('price');
	var paymentDiv = document.getElementById('f_payment');
	var add = 0;
	
	if(delivType == 'BE'){
		//show the payment selection
		paymentDiv.style.visibility = 'visible';
		paymentDiv.style.display = 'inline';
		if(paymentType[0].checked){ //pre
			if(carttotal < 30)
				add = 6.00;
			else if(carttotal < 50)
				add = 3.00;
			else if(carttotal < 75)
				add = 2.00;
			else if(carttotal < 100)
				add = 1.00;
			else if(carttotal >= 100)
				add = 0;
		} else if(paymentType[1].checked){ //secure
			if(carttotal < 30)
				add = 7.00;
			else if(carttotal < 50)
				add = 4.00;
			else if(carttotal < 75)
				add = 3.00;
			else if(carttotal < 100)
				add = 2.00;
			else if(carttotal < 150)
				add = 1.00;
			else if(carttotal >= 150)
				add = 0;
		} else if (paymentType[2].checked) { //full
			if(carttotal < 75)
				add = 13.00;
			else if(carttotal < 100)
				add = 10.00;
			else if(carttotal >= 100)
				add = 5;
		}
		priceField.innerHTML = '&euro; '+((+carttotal)+add).toFixed(2)+'<br><span class="txtsmall">waarvan &euro;'+(+add).toFixed(2)+' verzendkosten</span>';
	} else {
		//show the payment selection
		paymentDiv.style.visibility = 'hidden';
		paymentDiv.style.display = 'none';
		//calculate
		if(delivType == 'NELUX') {
			if(carttotal <= 30)
				add = 15.00;
			else if(carttotal <= 50)
				add = 10.00;
			else if(carttotal <= 100)
				add = 7.5;
			else if(carttotal <= 150)
				add = 5.00;
			else if(carttotal <= 200)
				add = 3.00;
			else if(carttotal > 200)
				add = 0;
			priceField.innerHTML = '&euro; '+((+carttotal)+add).toFixed(2)+'<br><span class="txtsmall">waarvan &euro;'+(+add).toFixed(2)+' verzendkosten</span>';
		} else if(delivType == 'EU') {
			priceField.innerHTML = '&euro; '+(+carttotal).toFixed(2)+ ' zonder verzendkosten<br><span class="txtsmall">(alle verzendingskosten worden u doorgerekend - tarief op aanvraag)</span>';
		}
	}
	document.nafraShop.total.value = (+carttotal)+add;
	
}

function toggleDeliveryAddress()
{
	lDelivAddress = document.getElementById('deliveryaddress');
	lCheckbox = document.getElementById('hasDelivAddress');
	if(lCheckbox.checked) {
		lDelivAddress.style.visibility = 'visible';
		lDelivAddress.style.display = 'inline';
	} else {
		lDelivAddress.style.visibility = 'hidden';
		lDelivAddress.style.display = 'none';
	}
}

function toggleFeedback()
{
	lFeedback = document.getElementById('feedback');
	lFeedbackList = document.getElementById('isCustomer');
	if(lFeedbackList.value == 'neen') {
		lFeedback.style.visibility = 'visible';
		lFeedback.style.display = 'inline';
	} else {
		lFeedback.style.visibility = 'hidden';
		lFeedback.style.display = 'none';
	}
}

function disableNextButton()
{
	document.getElementById('nextbutton').style.visibility="hidden";
}

function changeAmount(amountSelect)
{
	disableNextButton();
	window.location=amountSelect[amountSelect.selectedIndex].value;
}