﻿var store = store || {};

store = {
	addToBasket: function (sku, variantSku, domainName) {
		var addRequest = {
			sku: sku,
			variantSku: variantSku,
			domainName: domainName
		};

		addRequest = JSON.stringify(addRequest);

		$.ajax({
			type: "POST",
			contentType: "application/json; charset=utf-8",
			url: "/Services/Basket.svc/AddToBasket",
			data: addRequest,
			dataType: "json",
			success: function (result) {
				location.href = "/en/cart.aspx";
			},
			error: function (msg) {
				alert("Could not add item to cart: " + msg.statusText + "," + msg.responseText);
			}
		});
	},

	removeLineItem: function (lineItemId, removeItemFromUiFunction) {
		var removeItemRequest = {
			lineItemId: lineItemId
		};

		removeItemRequest = JSON.stringify(removeItemRequest);

		$.ajax({
			type: "POST",
			contentType: "application/json;charset=utf-8",
			url: "/Services/Basket.svc/RemoveLineItem",
			data: removeItemRequest,
			dataType: "json",
			success: function (result) {
				removeItemFromUiFunction(lineItemId, result);
			},
			error: function (msg) {
				alert("Could not remove item from cart " + msg);
			}
		});
	},

	addBillingInformation: function (companyName, firstName, lastName,
			emailAddress, phoneNumber, countryId, companyRegistrationNumber,
			addressLine1, addressLine2, postCode, city, newsletter, onSuccessfulUpdate) {

		var billingAddressRequest = {
			companyName: companyName,
			firstName: firstName,
			lastName: lastName,
			emailAddress: emailAddress,
			phoneNumber: phoneNumber,
			countryId: countryId,
			companyRegistrationNumber: companyRegistrationNumber,
			addressLine1: addressLine1,
			addressLine2: addressLine2,
			postCode: postCode,
			city: city,
			newsletter: newsletter
		};

		billingAddressRequest = JSON.stringify(billingAddressRequest);

		$.ajax({
			type: "POST",
			contentType: "application/json;charset=utf-8",
			url: "/Services/Basket.svc/AddBillingInfo",
			data: billingAddressRequest,
			dataType: "json",
			success: function (result) {
				onSuccessfulUpdate(result);
			},
			error: function (msg) {
				alert("Could not update billing information " + msg);
			}
		});
	},

	validateCompanyRegistrationNumber: function (companyRegistrationNumber, countryId, callback) {

		var validateCompanyRegNoRequest = {
			companyRegistrationNumber: companyRegistrationNumber,
			countryId: countryId
		};

		validateCompanyRegNoRequest = JSON.stringify(validateCompanyRegNoRequest);

		var isValid = false;
		$.ajax({
			async: false,
			type: "POST",
			contentType: "application/json;charset=utf-8",
			url: "/Services/Basket.svc/ValidateCompanyRegistrationNumber",
			data: validateCompanyRegNoRequest,
			dataType: "json",
			success: function (result) {
				isValid = result.d;
			},
			error: function (msg) {
				alert("Could not validate company registration number.");
			}
		});

		return isValid;
	}
};
