var windowLoadingDiv = false;
var mutatie_timer = false;
var thisShopPage = false;
var betalenStopLinks = false;

function shop_winkelwagen_delete(product_id) {
	setWinkelwagenLoading(true);
	ajaxRequestWinkelwagen('delete', {product_id: product_id});
}

function shop_winkelwagen_delete_verp(product_id) {
	setWinkelwagenLoading(true);
	ajaxRequestWinkelwagen('delete_verp', {product_id: product_id});
}

function shop_winkelwagen_up(e) {
	var el = Event.element(e);
	var product_id = el.getAttribute('rel');
	$('aantalInput_' + product_id).value = parseInt($F('aantalInput_' + product_id), 10) + 1;
	
	if (mutatie_timer !== false) clearTimeout(mutatie_timer);
	mutatie_timer = setTimeout("updateMutaties();", 750);
}

function shop_winkelwagen_down(e) {
	var el = Event.element(e);
	var product_id = el.getAttribute('rel');
	$('aantalInput_' + product_id).value = parseInt($F('aantalInput_' + product_id), 10) - 1;
	
	if (mutatie_timer !== false) clearTimeout(mutatie_timer);
	mutatie_timer = setTimeout("updateMutaties();", 750);
}

function shop_winkelwagen_keydown(e) {
	if (mutatie_timer !== false) clearTimeout(mutatie_timer);
	mutatie_timer = setTimeout("updateMutaties();", 750);
}

function updateMutaties() {
	var winkelwagenAantalContainers = $$('.winkelwagenAantalContainer');
	
	var data = [];
	for (var i=0; i < winkelwagenAantalContainers.length; i++) {
		var product_id = winkelwagenAantalContainers[i].getAttribute('rel');
		var vwaarde = $F('aantalInput_' + product_id);
		
		if (vwaarde == '3') {
			alert(__SHOP_WINKELWAGEN_ONGELDIGE_WAARDE);
			$('aantalInput_' + product_id).value = '4';
		}
		
		if (vwaarde == '5') {
			alert(__SHOP_WINKELWAGEN_ONGELDIGE_WAARDE);
			$('aantalInput_' + product_id).value = '6';
		}
		
		if (vwaarde == '7') {
			alert(__SHOP_WINKELWAGEN_ONGELDIGE_WAARDE);
			$('aantalInput_' + product_id).value = '8';
		}
		
		data[data.length] = product_id + ':' + $F('aantalInput_' + product_id);
	}
	data = data.join('|');
	
	setWinkelwagenLoading(true);
	ajaxRequestWinkelwagen('muteer_winkelwagen', {mutaties: data});
}

function setWinkelwagenLoading(loading) {
	if (loading) {
		var dims = $('winkelwagenTable').getDimensions();
		var pos = $('winkelwagenTable').cumulativeOffset();
		
		windowLoadingDiv = new Element('div');
		windowLoadingDiv.style.position = 'absolute';
		windowLoadingDiv.style.left = pos.left + 'px';
		windowLoadingDiv.style.top = pos.top + 'px';
		windowLoadingDiv.style.width = dims.width + 'px';
		windowLoadingDiv.style.height = dims.height + 'px';
		windowLoadingDiv.style.backgroundColor = '#FFFFFF';
		
		var loadingImg = new Element('img', {src: 'images/load.gif'});
		loadingImg.style.position = 'absolute';
		loadingImg.style.left = Math.round((dims.width / 2) - 16) + 'px';
		loadingImg.style.top = Math.round((dims.height / 2) - 16) + 'px';
		loadingImg.style.width = '32px';
		loadingImg.style.height = '32px';
		windowLoadingDiv.appendChild(loadingImg);
		windowLoadingDiv.loadingImage = loadingImg;
		
		setElementOpacity(windowLoadingDiv, 75);
		document.body.appendChild(windowLoadingDiv);
	} else {
		if (windowLoadingDiv !== false) {
			windowLoadingDiv.removeChild(windowLoadingDiv.loadingImage);
			document.body.removeChild(windowLoadingDiv);
		}
	}
}

/*
function ajaxHandler(response) {
	$('winkelwagenDiv').innerHTML = response.responseText;
	addWinkelwagenUpDown();
	
	setWinkelwagenLoading(false);
}

function ajaxRequestWinkelwagen(actie, params) {
	if (typeof(params) != 'object') params = {};
	params.actie = actie;
	new Ajax.Request(
		'webshop_ajax_winkelwagen.php', {
			method: 'post',
			parameters: params,
			onSuccess: ajaxHandler,
			onFailure: function() { alert(__SHOP_ONBEKENDE_FOUT_JS); setWinkelwagenLoading(false); }
	});
}
*/

function ajaxRequestWinkelwagen(actie, params) {
	if (typeof(params) != 'object') params = {};
	params.actie = actie;
	new Ajax.Updater(
		'winkelwagenDiv',
		'webshop_ajax_winkelwagen.php', {
			method: 'post',
			parameters: params,
			evalScripts: true,
			onComplete: function(response) {
				addWinkelwagenUpDown();
				setWinkelwagenLoading(false);
			},
			onFailure: function() {
				alert(__SHOP_ONBEKENDE_FOUT_JS); setWinkelwagenLoading(false);
			}
	});
}

function setElementOpacity(el, op) {
	try {
		el.style.opacity = op / 100;
	} catch (e) {}
	
	try {
		el.style.filter = "alpha(opacity=" + op.toString() + ");";
	} catch (e) {}
}

function addWinkelwagenUpDown() {

	var winkelwagenAantalContainers = $$('.winkelwagenAantalContainer');
	
	for (var i=0; i < winkelwagenAantalContainers.length; i++) {
		var product_id = winkelwagenAantalContainers[i].getAttribute('rel');
		
		/*var up = new Element('img', {src: 'images/up.gif'});
		up.style.position = 'absolute';
		up.style.left = '35px';
		up.style.top = '2px';
		up.style.cursor = 'pointer';
		up.setAttribute('rel', product_id);
		
		var down = new Element('img', {src: 'images/down.gif'});
		down.style.position = 'absolute';
		down.style.left = '35px';
		down.style.top = '13px';
		down.style.cursor = 'pointer';
		down.setAttribute('rel', product_id);*/
		
		//Event.observe(up, 'click', shop_winkelwagen_up);
		//Event.observe(down, 'click', shop_winkelwagen_down);
		Event.observe($('aantalInput_' + product_id), 'change', shop_winkelwagen_keydown);
		
		// winkelwagenAantalContainers[i].appendChild(up);
		// winkelwagenAantalContainers[i].appendChild(down);
	}
}

function gegevensLinkClick(e) {
	var el = Event.element(e);
	
	// Don't execute if it's a fancybox
	if (el.up().hasClassName('zoom')) return false;

	while (el.tagName.toUpperCase() != 'A') {
		el = el.parentNode;
	}
	
	var target = el.getAttribute('target');
	if (target && target == "_blank") return;
	
	var href = el.getAttribute('href');
	if (href.indexOf('javascript:') != -1) return;
	
	Event.stop(e);
	
	var form = $('gegevensForm');
	form['href'].value = href;
	form['actie'].value = 'verwerk_bestelformulier_niet_definitief';
	form.submit();
}

function betalenLinkClick(e) {
	alert('Rond eerst de betaling af!');
	Event.stop(e);
}

Event.observe(window, 'load', pageLoaded);
function pageLoaded() {
	switch (thisShopPage) {
		case 'winkelwagen':
			addWinkelwagenUpDown();
		break;
		
		case 'gegevens':
			// Vang alle links op
			var atags = $$('a');
			for (var i=0; i < atags.length; i++) {
				Event.observe(atags[i], 'click', gegevensLinkClick);
			}
		break;
		
		case 'betalen':
			/*if (betalenStopLinks) {
				var atags = $$('a');
				for (var i=0; i < atags.length; i++) {
					Event.observe(atags[i], 'click', betalenLinkClick);
				}
			}*/
		break;
	}
}
