/**********************/
/*                    */
/*   Cart functions   */
/*                    */
/**********************/

function addProduct()
{
	// Check amount
	var amount_field = $('add_amount');
	var amount = amount_field.value;
	// Check variant
	var variant_chooser = $('variants');
	if (!variant_chooser)
	{
		var variant = -1;
	}
	else
	{
		var variant = variant_chooser.getValue();
	}
	// Call the built-in function
	addToCart(product_id, variant, amount);
	//alert("product: "+product_id+", variant: "+variant+", amount: "+amount);
}

function addToCartResponse(obj)
{
	if (obj.result == 'error')
	{
		alert(obj.message);
	}
	else
	{
		$('cart_itemCount').update(obj.count);
		$('cart_total').update(obj.total_vat);
	}
}

/************************/
/*                      */
/*   Member functions   */
/*                      */
/************************/

function doLogin(email)
{
	$('login-error-notfound').hide();
	if (email == "")
	{
		alert("Please supply your e-mail to login");
		return;
	}
	login(email);
}

function loginResponse(obj)
{
	if (obj.result == "error")
	{
		if (obj.reason == "membernotfound")
		{
			// Member not found
			$('login-error-notfound').appear();
		}
		else if (obj.reason == "custom")
		{
			alert(obj.message);
		}
	}
	else
	{
		document.location = '/checkout';
	}
}

function doCreateMember()
{
	var sendform = true;
	$('register-required-firstname').hide();
	$('register-required-lastname').hide();
	$('register-required-email').hide();
	$('register-required-address1').hide();
	$('register-required-postcode').hide();
	$('register-required-city').hide();
	
	// Validate fields
	if ($('register-firstname').value == '')
	{
		$('register-required-firstname').appear();
		sendform = false;
	}
	if ($('register-lastname').value == '')
	{
		$('register-required-lastname').appear();
		sendform = false;
	}
	if ($('register-email').value == '')
	{
		$('register-required-email').appear();
		sendform = false;
	}
	if ($('register-address1').value == '')
	{
		$('register-required-address1').appear();
		sendform = false;
	}
	if ($('register-postcode').value == '')
	{
		$('register-required-postcode').appear();
		sendform = false;
	}
	if ($('register-city').value == '')
	{
		$('register-required-city').appear();
		sendform = false;
	}
	// Break if there were errors
	if (!sendform) return;
	
	var member = new Object;
	member.firstname 	= $('register-firstname').value;
	member.lastname 	= $('register-lastname').value;
	member.email 		= $('register-email').value;
	member.phone 		= $('register-phone').value;
	member.address1 	= $('register-address1').value;
	member.address2 	= $('register-address2').value;
	member.postcode 	= $('register-postcode').value;
	member.city 		= $('register-city').value;
	member.newsletter	= $('register-newsletter').checked ? 1 : 0;
	
	createMember(member);
}

function createMemberResponse(obj)
{
	if (obj.result == "success")
	{
		document.location = '/checkout';
	}
	else
	{
		alert(obj.message);
	}
}

function doUpdateMember()
{
	var sendform = true;
	$('account-required-firstname').hide();
	$('account-required-lastname').hide();
	$('account-required-email').hide();
	$('account-required-address1').hide();
	$('account-required-postcode').hide();
	$('account-required-city').hide();
	
	// Validate fields
	if ($('account-firstname').value == '')
	{
		$('account-required-firstname').appear();
		sendform = false;
	}
	if ($('account-lastname').value == '')
	{
		$('account-required-lastname').appear();
		sendform = false;
	}
	if ($('account-email').value == '')
	{
		$('account-required-email').appear();
		sendform = false;
	}
	if ($('account-address1').value == '')
	{
		$('account-required-address1').appear();
		sendform = false;
	}
	if ($('account-postcode').value == '')
	{
		$('account-required-postcode').appear();
		sendform = false;
	}
	if ($('account-city').value == '')
	{
		$('account-required-city').appear();
		sendform = false;
	}
	// Break if there were errors
	if (!sendform) return;
	
	var member = new Object;
	member.firstname 	= $('account-firstname').value;
	member.lastname 	= $('account-lastname').value;
	member.email 		= $('account-email').value;
	member.phone 		= $('account-phone').value;
	member.address1 	= $('account-address1').value;
	member.address2 	= $('account-address2').value;
	member.postcode 	= $('account-postcode').value;
	member.city 		= $('account-city').value;
	member.newsletter	= $('account-newsletter').checked ? 1 : 0;
	
	updateMember(member);
}

function updateMemberResponse(obj)
{
	if (obj.result == "success")
	{
		document.location = '/checkout';
	}
	else
	{
		alert(obj.message);
	}
}

function setVoucher()
{
	var value = $('voucher').value;
	addVoucher(value);
}

function addVoucherResponse(obj)
{
	window.location.reload();
}

/************************/
/*                      */
/*    Misc functions    */
/*                      */
/************************/

var voucherTimeout = -1;

// Add helpers to the textfields that need them
document.observe("dom:loaded", function() 
{
	// Iterate through all inputs with classname "helper"
	$$('input.helper').each(function(el) 
	{
		if (el.value == "" && el.title != "")
		{
			el.value = el.title;
			el.addClassName("preview");
		}
		el.observe('focus', function(event){
			var el = Event.element(event);
			el.removeClassName("preview");
			if (el.value == el.title) el.value = "";
		});
		el.observe('blur', function(event){
			var el = Event.element(event);
			if (el.value == "" || el.value == el.title)
			{
				el.addClassName("preview");
				el.value = el.title;
			}
		});
	});
	
	// Check for voucher field
	if ($('voucher'))
	{
		$('voucher').observe('keyup', function(event){
			clearTimeout(voucherTimeout);
			var el = Event.element(event);
			if (el.value != "" && el.value != el.title)
			{
				// A voucher has been supplied
				voucherTimeout = setTimeout(setVoucher,1000);
			}
		});
	}
});

