﻿function ShoppingBasket() {
	var request;

	this.SubmitBasket = function(id, amount, description, articlenumber, price, type) {
		description = escape(description);
		var sendStr = "info=id=" + id + ";amount=" + amount + ";description=" + description + ";articlenumber=" + articlenumber + ";price=" + price + ";";
		request = new XMLHttpRequest();
		request.open("POST", "Artikels.aspx");
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		switch (type) {
			case "b":
				request.setRequestHeader("IsSumbitShoppingBasketOrder", "true");
				break;
			case "o":
				request.setRequestHeader("IsSumbitShoppingBasketQuotation", "true");
				break;
		}
		request.send(sendStr);

		popupBox.initPopupBox(false);
	};

	this.SubmitBasketChange = function(uniqueId, amount) {
		var sendStr = "info=unique=" + uniqueId + ";amount=" + amount + ";name=" + name + ";";
		request = new XMLHttpRequest();
		request.open("POST", "BestelLijst.aspx");
		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.setRequestHeader("IsSumbitShoppingBasketChange", "true");
		request.send(sendStr);
	};

	this.RequestBasketInfo = function(callBackFunction) {
		var sendStr = "noData";
		request = new XMLHttpRequest();
		request.open("POST", "Artikels.aspx");

		var currentObject = this;
		request.onreadystatechange = function() {
			currentObject.HandleStateChange(callBackFunction);
		};

		request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		request.setRequestHeader("IsRequestShoppingBasket", "true");
		request.send(sendStr);
	};

	this.HandleStateChange = function(callBackFunction) {
		if (request.readyState == 4) {

			switch (request.status) {
				case 12029:
				case 12030:
				case 12031:
				case 12152:
				case 12159:
					//IE error
					//repeat call here
					POSTRequest(mUrl, mOldparameters);
					return;
			}

			if (request.status == 200) {
				this.ReadyCallbackRequestBasketInfo(callBackFunction);
			}
		}
	};

	this.ReadyCallbackRequestBasketInfo = function(callBackFunction) {
		var responseText = request.responseText;

		var splitText = responseText.split(';');

		var htmlText = splitText[2];
		var orderCount = splitText[0];
		var quotationCount = splitText[1];

		orderCount = orderCount.split('=')[1];
		quotationCount = quotationCount.split('=')[1];
		callBackFunction(htmlText, orderCount, quotationCount);
	};
}

var shoppingbasket = new ShoppingBasket();
