function updateBasketInfo() {
	var bi_req = _xml();
	bi_req.open("GET", "/basket_info.cp2", true);
	bi_req.onreadystatechange=function() {
		if (bi_req.readyState==4) {
			if (bi_req.status == 200) {
				document.getElementById('basket_info').innerHTML = bi_req.responseText;
			} else {
				 alert("There was a problem retrieving the XML data:\n" + bi_req.statusText);
			}
		}
	}
	bi_req.send(null);
}

function updateCart(qs, id) {
	var c_req = _xml();
	var url = "/cart_list_items.cp2" + (qs==null ? "" : "?" + qs);
	c_req.open("GET", url, true);
	c_req.onreadystatechange=function() {
		if (c_req.readyState==4) {
			if (c_req.status == 200) {
				document.getElementById('kos_content').innerHTML = c_req.responseText;
				updateBasketInfo();
			} else {
				 alert("There was a problem retrieving the XML data:\n" + c_req.statusText);
			}
		}
	}
	c_req.send(null);
}

function remove(set, uid) {
	if(confirm(CONFIRM_REMOVE)) {
		updateCart("set=" + escape(set) + "&remove=" + escape(uid));
	}
}

var m_rel = null;

var log = null;

function reload() {
	var form = document.getElementById('cart-contents');
	var qs = "?set=" + Math.random() + "&quantity=1";
	var changed = false;
	for(var i=0; i<form.length; i++) {
		var item = form[i];
		var id = item.id;

		if(id.substring(0,2)=='q-') {
			var or = document.getElementById('o-' + id.substring(2));
			if(or.value!=item.value) {
				changed = true;
				qs += "&guid=" + escape(id.substring(2)) + "&q=" + item.value;
			}
		}
	}

	if(changed) {
		updateCart(qs);
	}
}

function addService(itemID, serviceID) {
	var qs = "?set=" + Math.random() +
				"&action=add_service" +
				"&tangibleID=" + escape(itemID) +
				"&service=" + escape(serviceID);
	var a = document.getElementById("a-"+itemID+"-" + serviceID);
	if(a) {
		a.style.display = 'none';
	}
	updateCart(qs, "item-" + itemID);
}

function removeService(itemID, serviceID) {
	var qs = "?set=" + Math.random() +
				"&action=remove_service" +
				"&tangibleID=" + escape(itemID) +
				"&service=" + escape(serviceID);
	var a = document.getElementById("a-"+itemID+"-" + serviceID);
	if(a) {
		a.style.display = 'none';
	}
	updateCart(qs, "item-" + itemID);
}

function vv(v) {
	if(v==null || v=="") {
		return 1;
	} else {
		v = new String(v).replace(/[^0-9]/gi,'');
	}
	v = parseInt(v, 10);
	return v < 1 ? 1 : v > 99 ? 99 : v;
}

function vvv(v) {
	if(m_rel!=null) {
		clearTimeout(m_rel);
	}
	m_rel = setTimeout("reload()", 500);

	return vv(v);
}

function www(w) {
	if(m_rel!=null) {
		clearTimeout(m_rel);
	}

	if(w.value!='') {
		var v = new String(w.value).replace(/[^0-9]/gi,'');
		var i = parseInt(w.value, 10);
		if(i >= 1 && i <= 99) {
			m_rel = setTimeout("reload()", 500);
		}
	}
}

function m(id, inc) {
	var m_q = document.getElementById('q-' + id);

	if(m_rel!=null) {
		clearTimeout(m_rel);
	}
	m_rel = setTimeout("reload()", 1000);

	var v = parseInt(m_q.value, 10);
	v += inc;

	m_q.value = vv(v);
}
