// alle javascript functies die gebruikt worden bij het bestelproces

// bestellen van een artikel middels Ajax
function bestelArtikel(artikel_id, aantal) { 
	jQuery.getJSON(baseUrl + "bestel/addartikel/artikel_id/" + artikel_id + "/aantal/" + aantal + "/",
		function(responseData) {
			jQuery('#bestelbon_widget').html(responseData.bestelbon_widget);
			
			// toon de melding op de juiste plaats
			toonBestelbonMelding(responseData.melding);
		});
}

function verwijderArtikel(artikel_id, waarschuwing) {
	if (confirm(waarschuwing)) {
		jQuery.getJSON(baseUrl + "bestel/verwijderartikel/artikel_id/" + artikel_id + "/", 
				function(responseData) {
					jQuery('#bestelbon_widget').html(responseData.bestelbon_widget);
					
					// toon de melding op de juiste plaats
					toonBestelbonMelding(responseData.melding);
			});
	}
}

function verwijderBestelbonArtikel(artikel_id, waarschuwing) {
	if (confirm(waarschuwing)) {
		jQuery.getJSON(baseUrl + "bestel/verwijderartikel/artikel_id/" + artikel_id + "/", 
				function(responseData) {
					// refresh het scherm
					window.location.reload();
			});
	}
}


// functie die wordt uitgevoerd op het moment dat de gebruiker op de knop 'voeg toe' klikt in 
// het shop detail scherm
function artikelDetailToevoegen(artikel_id) {
	// haal aantal op
	aantal = jQuery('#artikel_aantal').val();
	
	// alleen getallen toestaan
	if ((aantal.match(/\D+/) != null) || (parseInt(aantal) <= 0) || (aantal == '')) {
		alert('Geef een (positief) aantal op');
		return false;
	}
	// bestel het artikel
	bestelArtikel(artikel_id, parseInt(aantal));
}

// functie die wordt uitgevoerd op het moment dat de gebruiker op de knop 'plaats in winkelmand' klikt 
// in het shop categorie scherm
function artikelCategorieToevoegen(artikel_id) {
	// bestel het artikel, met standaard aantal 1
	bestelArtikel(artikel_id, 1); 
}

// functie die de bestelbon melding op de juiste plaats toont (scrollt als noodzakelijk naar de juiste plaats zodat 
// melding goed in beeld komt) en zorgt er tevens voor dat deze na enkele seconden verdwijnt
function toonBestelbonMelding(sMelding) {
	// stel de melding in
	jQuery('#bestel_melding_tekst').html(sMelding);
	
	// spring naar de bestelbon widget
	// - bepaal de top van de widget
	var widgetOffset = jQuery('#bestel_melding').offset();
	// - bepaal hoever de gebruiker heeft gescrolled
	var scrollOffsetTop = document.documentElement.scrollTop;
	// - bepaal de hoogte van de viewport
	var vpHeight= jQuery(window).height();
	
	// als de top van de bestelwidget niet binnen de viewport ligt (met een bottom marge van 100px), dan er naar toe springen
	if (widgetOffset.top < scrollOffsetTop) {
		// widget ligt boven de viewport
		document.documentElement.scrollTop = (widgetOffset.top - 50);
	}
	// als de top van de bestwidget aan de onderkant van de viewport buiten beeld ligt, dan verder scrollen
	if (widgetOffset.top > (scrollOffsetTop + vpHeight)) {
		document.documentElement.scrollTop = (widgetOffset.top - 50);
	}
	
	// zorg er voor dat de melding binnen nu en een aantal seconden verdwijnt
	setTimeout("jQuery('#bestel_melding').fadeOut(1000)", 2000);
}
