// Event.observe(window, 'load', setupShop);
function isNum(num) {
	if(isNaN(num*1))
		return false;
	else
		return true;
}
function populateCartDiv() {
	// populate shopping cart div:
	var url = '/butikk/cartajax?task=count';
	var cartDiv = $('cart');
	var options = {
		method: 'get',
		onFailure: function(transport) {
			alert('Failed AJAX');
		},
		onSuccess: function(transport) {
			var json = transport.responseText.evalJSON(true);
	        var noOfItems = json.noOfItems;
	        string = '<div class="clear">&nbsp;</div>';
			string += '<div id="cartContainer">';
			string += 'Du har '+noOfItems+' produkter i handlevognen.'; 
			string += '<a href="#" onclick="javascript: deleteCart(); return false;" title="Tøm handlevogn">';
			string += 'Tøm handlevogn';
			string += '</a>';
			string += '</div>';
			string += '<a href="/butikk/kasse" title="Fullfør bestilling" id="checkoutLink">';
			string += '<img src="/images/til_kassen_knapp.gif" width="80" height="28" alt="Til kassen" />';
			string += '</a>';
			string += '<div class="clear">&nbsp;</div>';
			cartDiv.update(string);
		} 
	}
	new Ajax.Request(url, options)
}
function deleteCart() {
	if (!confirm('Sikker på at du vil tømme handlevognen?'))
		return;
	if (settings.busy)
		return;
	settings.busy = true;
	showBusyMessage();
	var url = '/butikk/cartajax?task=delete';
	var cartDiv = $('cart');
	var options = {
		method: 'get',
		onFailure: function(transport) {
			alert('Failed AJAX');
		},
		onSuccess: function(transport) {
			settings.ajaxmessage = 'Handlevognen er tømt';
			var div = $(settings.popupmessage);
			div.update(settings.ajaxmessage);
			setTimeout('hideBusyMessage()', 1000);
			settings.busy = false;
			location.reload(true);
		} 
	}
	new Ajax.Request(url, options);
}
function changeQuantity(options) {
	if (settings.busy)
		return;
	var default_args = {
		'id'		:	'0',
		'quantity'	:	'0'
	}
	for(var index in default_args) {
		if(typeof options[index] == "undefined") options[index] = default_args[index];
	}
	if (options['id'] == '0')
		return;
	if (options['quantity'] == 0) {
		if (!confirm('Sikker på at du vil fjerne varelinjen?'))
			return;
	}
	if (!isNum(options['quantity']))
		return;
	settings.busy = true;
	showBusyMessage();
	var url = '/butikk/cartajax?task=changequantity&id='+options['id']+'&quantity='+options['quantity'];
	var quantityInput = $('q'+options['id']);
	var options = {
		method: 'get',
		onFailure: function(transport) {
			alert('Failed AJAX');
		},
		onSuccess: function(transport) {
			if (options['quantity'] == 0)
				settings.ajaxmessage = 'Varelinjen ble fjernet';
			else			
				settings.ajaxmessage = 'Antallet ble endret';
			var div = $(settings.popupmessage);
			div.update(settings.ajaxmessage);
			// setTimeout('hideBusyMessage()', 1000);
			settings.busy = false;
			if (options['quantity'] == 0) {
				location.reload(true);
			} else {
				new Effect.Highlight(quantityInput);
				location.reload(true);
			}
		}
	}
	new Ajax.Request(url, options);
}
function addToCart(id, hasVariants) {
	if (settings.busy)
		return;
	// REMEMBER TO SET THIS TO FALSE WHEN YOU ARE DONE DOING THINGS
	settings.busy = true;
	var quantity = $('add'+id).value;	
	if (hasVariants == '1') {
		var propertyElem = 'form_property_'+id;
		var propertyName = $(propertyElem).name;
		// Care: Value of id changes. 
		// Must be below where var quantity is set (see above).
		id = $(propertyElem).value;
		if (id == '0') {
			alert('Du må velge '+propertyName);
			settings.busy = false;
			return;
		}
	}
	showBusyMessage();
	var url = '/butikk/cartajax?task=add&id='+id+'&quantity='+quantity;
	var cartDiv = $('cartWrapper');
	var options = {
		method: 'get',
		onFailure: function(transport) {
			settings.busy = false;
			alert('Failed AJAX');
		},
		onSuccess: function(transport) {
			settings.ajaxmessage = 'Varen er lagt til i kurven';
			var div = $(settings.popupmessage);
			div.update(settings.ajaxmessage);
			setTimeout('hideBusyMessage()', 1000);
			settings.busy = false;
			// populateCartDiv();
	        new Effect.Highlight(cartDiv, { startcolor: '#ffffff', endcolor: '#cccccc' });
	        location.reload(true);
		}
	}
	new Ajax.Request(url, options);
}
function addToCartFromDetailsPage(id, hasVariants) {
	if (settings.busy)
		return;
	// REMEMBER TO SET THIS TO FALSE WHEN YOU ARE DONE DOING THINGS
	settings.busy = true;
	var quantity = $('add'+id).value;
	
	if (hasVariants == '1') {
		var propertyName = $('form_property').name;
		// Care: Value of id changes. 
		// Must be below where var quantity is set (see above).
		id = $('form_property').value;
		if (id == '0') {
			alert('Du må velge '+propertyName);
			settings.busy = false;
			return;
		}
	}
	var url = '/butikk/cartajax?task=add&id='+id+'&quantity='+quantity;
	var cartDiv = $('cart');
	var options = {
		method: 'get',
		onFailure: function(transport) {
			settings.busy = false;
			alert('Failed AJAX');
		},
		onSuccess: function(transport) {
			alert('Varen er lagt til i kurven');
			settings.busy = false;
			// populateCartDiv();
	        new Effect.Highlight(cartDiv, { startcolor: '#ffffff', endcolor: '#cccccc' });
	        location.reload(true);
		}
	}
	new Ajax.Request(url, options);
}
function hideBusyMessage() {
	var div = $(settings.popupmessage);
	Effect.Fade(div);
	settings.ajaxmessage = '';
}
function showBusyMessage() {
	var div = $(settings.popupmessage);
	div.update('Vent...');
	div.up(0).makePositioned();
	var size = div.up(0).getDimensions();
	div.style.left = (size.width / 2) - 130 +'px';
	var scrollTop = f_scrollTop();
	var clientHeight = f_clientHeight();
	div.style.top = scrollTop + (clientHeight / 2) - (div.getHeight()) +'px';
	Effect.Appear(div, {duration: 0.1});
}
function payMethod(event) {
	var clickedElem = Event.element(event);
	var form = $('checkoutForm');
	form.stage.value = 'betaling';
	var url = '/butikk/betaling';
	window.location.href = url;
	// return Popup.open({url:url, name: 'paywin', width:650, height: 600});
}
function selectProperty(elem) {
	return;
}
// FROM http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
function f_clientWidth() {
	return f_filterResults (
		window.innerWidth ? window.innerWidth : 0,
		document.documentElement ? document.documentElement.clientWidth : 0,
		document.body ? document.body.clientWidth : 0
	);
}
// FROM http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
function f_clientHeight() {
	return f_filterResults (
		window.innerHeight ? window.innerHeight : 0,
		document.documentElement ? document.documentElement.clientHeight : 0,
		document.body ? document.body.clientHeight : 0
	);
}

// FROM http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
function f_scrollTop() {
	return f_filterResults (
		window.pageYOffset ? window.pageYOffset : 0,
		document.documentElement ? document.documentElement.scrollTop : 0,
		document.body ? document.body.scrollTop : 0
	);
}
// FROM http://www.softcomplex.com/docs/get_window_size_and_scrollbar_position.html
function f_filterResults(n_win, n_docel, n_body) {
	var n_result = n_win ? n_win : 0;
	if (n_docel && (!n_result || (n_result > n_docel)))
		n_result = n_docel;
	return n_body && (!n_result || (n_result > n_body)) ? n_body : n_result;
}