document.observe("dom:loaded", function() {
  // initially show open category item
  var cookieItem = Get_Cookie('currentTreeItem');
  var cookiePageItem = Get_Cookie('currentPageItem');
  if (cookieItem) $('category_'+cookieItem).show();
  if (cookiePageItem) $('page_'+cookiePageItem).show();
  currentTreeItem = cookieItem;
  currentPageItem = cookiePageItem;
});

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);
	
		if (obj.count > 0 && $('small-basket').style.display == 'none')
		{
			// Show the cart
			Effect.BlindDown('small-basket', {duration:.3});
		}
	}
}

var currentTreeItem = 0;
function openCategory(id)
{
	if (id == currentTreeItem)
	{
		Effect.BlindUp('category_'+id, { duration: .3 });
		currentTreeItem = 0;
		Delete_Cookie( 'currentTreeItem', '/' );
	}
	else
	{
		Effect.BlindDown('category_'+id, { duration: .3 });
		if (currentTreeItem > 0) Effect.BlindUp('category_'+currentTreeItem, { duration: .3 });
		currentTreeItem = id;
		Set_Cookie( 'currentTreeItem', currentTreeItem, 1, '/' );
		
		// Close page if there is one
		if (currentPageItem > 0) openPage(currentPageItem);
	}
}

var currentPageItem = 0;
function openPage(id)
{
	if (id == currentPageItem)
	{
		Effect.BlindUp('page_'+id, { duration: .3 });
		currentPageItem = 0;
		Delete_Cookie( 'currentPageItem', '/' );
	}
	else
	{
		Effect.BlindDown('page_'+id, { duration: .3 });
		if (currentPageItem > 0) Effect.BlindUp('page_'+currentPageItem, { duration: .3 });
		currentPageItem = id;
		Set_Cookie( 'currentPageItem', currentPageItem, 1, '/' );
		
		// Close category if there is one
		if (currentTreeItem > 0) openCategory(currentTreeItem);
	}
}

function resetTreeCookies()
{
	Delete_Cookie( 'currentPageItem', '/' );
	Delete_Cookie( 'currentTreeItem', '/' );
}

function doLogin(email)
{
	if (email == "")
	{
		alert("Vänligen fyll i din e-postadress för att logga in");
		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.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.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);
	}
}