function Init() {
	if(nPr == 0) {
		document.getElementById('BasketI').innerText = '0';
		document.getElementById('BasketT').innerText = '0.00';
		document.getElementById('SBStatus').innerHTML = 'is currently empty';
	}
	else {
		document.getElementById('BasketI').innerText = nIPr;
		document.getElementById('BasketT').innerText = TStr;
		var v,W,ObjS,ObjC,ObjM;
		for(var i=0; i<nPr; i++) {
			v = 'Q' + i;
			IQs[i] = parseInt(document.getElementById(v).value);
			
			W = 0;
			v = 'S' + i;
			if(document.getElementById(v)) {
				ObjS = document.getElementById(v);
				ISs[i] = ObjS.selectedIndex + 1;
				W = ObjS.clientWidth;
			}
			else {
				ObjS = false;
				ISs[i] = 0;
			}
			
			v = 'C' + i;
			if(document.getElementById(v)) {
				ObjC = document.getElementById(v);
				ICs[i] = ObjC.selectedIndex + 1;
				v = ObjC.clientWidth;
				if(v > W) { W = v; }
			}
			else {
				ObjC = false;
				ICs[i] = 0;
			}
			
			v = 'M' + i;
			if(document.getElementById(v)) {
				ObjM = document.getElementById(v);
				IMs[i] = ObjM.selectedIndex + 1;
				v = ObjM.clientWidth;
				if(v > W) { W = v; }
			}
			else {
				ObjM = false;
				IMs[i] = 0;
			}
			if(W < 100) { W = 100; }
			W = W + 24;
			if(ObjS) { ObjS.style.width = W; }
			if(ObjC) { ObjC.style.width = W; }
			if(ObjM) { ObjM.style.width = W; }
//alert(i + '. Q=' + IQs[i] + ', S=' + ISs[i] + ', C=' + ICs[i] + ', M=' + IMs[i]);
		}
	}
}

//=========================================================================================

function EmptyBasket2() {
	if(document.getElementById('BasketI').innerHTML != '0') {
		if(window.confirm('Warning! you are about to remove all items from your shopping basket.\n\nPlease click the "OK" button to empty your shopping basket,\nor click the "Cancel" button to cancel this request.')) {
			var v = MBasket(13,'');
			if(v == '') {
				v = 'ViewBasket.php?From=' + From;
				document.location.href=v;
			}
			else {
				return false;
			}
		}
	}
	else {
		alert('Your shopping basket is currently empty.');
		return false;
	}
}

function Total(n) {
  var v
	if(n == 1) { v = document.getElementById('FCD').innerHTML; }
	if(n == 3) { v = document.getElementById('RD').innerHTML; }
	if(n == 2) { v = document.getElementById('SD').innerHTML; }
	
	v = v.substr(1,v.length-1);
	v = parseFloat(v);
	document.getElementById('CoD').innerHTML = CFormat(v);
	v = v + Ttl;
	v = CFormat(v);
	document.getElementById('GTotal').innerHTML = v;
	document.getElementById('BasketT').innerHTML = v;
}

function Remove(n) {
	if(window.confirm('Warning! you are about to remove this item from your shopping basket.\n\nPlease click the "OK" button to remove the item,\nor click the "Cancel" button to cancel this request.')) {
		var v = 'ID' + n;
		v = document.getElementById(v).value + '|';
		v = MBasket(3,v);
		if(v == '') {
			v = Delivery();
			if(v == '') { v = 'ViewBasket.php?From=' + From; }
			else { v = 'ViewBasket.php?From=' + From + '&DID=' + v; }
			document.location.href=v;
		}
		else { return false; }
	}
	else { return false;	}
}

//	Single Update (n - product number, m = 1 --> reload page)

function Update(n,m) {
	var v = 'Q' + n;
	var Obj = document.getElementById(v);
	var q = Trim(Obj.value);
	if(q == '') {
		if(!Remove(n)) { Obj.value = IQs[n]; }
		return true;
	}
	if(IsNatural(q)) {						// Normal number
		q = parseInt(q);
		if(q == 0) {
			if(!Remove(n)) { Obj.value = IQs[n]; }
			return true;
		}
//	Check for same product, but with different parameters
		var qs = 'PID' + n;
		qs = document.getElementById(qs).value;
		var qc = 0;
		for(var i=0; i<nPr; i++) {
			if(i != n) {
				v = 'PID' + i;
				v = document.getElementById(v).value;
				if(v == qs) { qc = qc + IQs[i]; }
			}
		}
		v = 'MB' + n;
		var vq = document.getElementById(v).value;
		if((q + qc) <= vq) {
			var YN = false;
			var Str = '';
			if(q == IQs[n]) { Str = '|'; }
			else {
				YN = true;
				Str = q + '|';
			}
			v = 'S' + n;
			if(document.getElementById(v)) { qs = document.getElementById(v).selectedIndex + 1; }
			else { qs = 0; }
			if(qs == ISs[n]) { Str = Str + '|'; }
			else {
				YN = true;
				Str = Str + qs + '|';
			}
			v = 'C' + n;
			if(document.getElementById(v)) { qc = document.getElementById(v).selectedIndex + 1; }
			else { qc = 0; }
			if(qc == ICs[n]) { Str = Str + '|'; }
			else {
				YN = true;
				Str = Str + qc + '|';
			}
			v = 'M' + n;
			if(document.getElementById(v)) { var qm = document.getElementById(v).selectedIndex + 1; }
			else { var qm = 0; }
			if(qm == IMs[n]) { Str = Str + '|'; }
			else {
				YN = true;
				Str = Str + qm + '|';
			}

			if(YN) {
				v = 'PID' + n;
				var PID = document.getElementById(v).value;
				for(var i=0; i<nPr; i++) {
					v = 'PID' + i;
					Obj = document.getElementById(v);
					v = Obj.value;
//alert('n=' + n + ':' + i + '. PID=' + PID + ':' + v + ' - S=' + ISs[i] + ':' + qs + ', C=' + ICs[i] + ':' + qc + ', M=' + IMs[i] + ':' + qm);
					if(i != n && (v == PID && qs == ISs[i] && qc == ICs[i] && qm == IMs[i])) {
						v = 'ID' + i;
						v = document.getElementById(v).value + '|';
						v = MBasket(3,v);									// Delete
//alert('Item deleted - |' + v + '|');
						if(v != '') { return false; }
						q = q + IQs[i];
						Str = q + '|' + qs + '|' + qc + '|' + qm + '|';
					}
				}
				
				v = 'ID' + n
				Str = document.getElementById(v).value + '|' + Str;
				Str = MBasket(2,Str);
				if(Str == '') {
					ISs[n] = qs;
					ICs[n] = qc;
					IMs[n] = qm;
					if(q != IQs[n]) {
						if(m == 1) {
							v = Delivery();
							if(v == '') { v = 'ViewBasket.php?From=' + From; }
							else { v = 'ViewBasket.php?From=' + From + '&DID=' + v; }
							document.location.href=v;
						}
					}
					return true;
				}
				return true;
			}
			return true;
		}
		
		else {						// More than max to buy
			vq = vq - qc - IQs[n];
			if(vq == 0) {
				alert('Sorry, there are no more of these items available.');
			}
			else {
				if(vq == 1) {
					v = ' is ';
					q = ' item ';
				}
				else {
					v = ' are ';
					q = ' items ';
				}
				alert('There' + v + vq + q + 'available.\nPlease re-enter your quantity.');
			}
			Obj.value = IQs[n];
			Obj.focus();
			return false;
		}
	}
	else {
		alert('Please only enter a number.');
		Obj.focus();
		return false;
	}
}

function UpdateD() {
	var v = Delivery();
	if(v != IDID) {
		var Str = v + '|' + document.getElementById('CoD').innerText + '|';
		Str = MBasket(4,Str);
		IDID = v;
	}
}

function GUpdate() {
	var YN = true;
	for(var i=0; i<nPr; i++) {
		if(!Update(i,0)) {
			YN = false;
			break;
		}
	}
	if(YN) {
		UpdateD();
		v = Delivery();
		if(v == '') { v = 'ViewBasket.php?From=' + From; }
		else { v = 'ViewBasket.php?From=' + From + '&DID=' + v; }
		document.location.href=v;
	}
	
	return YN;
}

//=========================================================================================


function GoShopping() {
	if(nPr > 0) {
		if(!GUpdate()) { return; }
	}

	if(From == '') { v = 'Products.php'; }
	else {
		var v = From.indexOf('|');
		if(From.substr(0,v) == '0') {
			v = v + 1;
			var p = From.indexOf('|',v);
			var SS = From.substr(v,p-v);
			v = p + 1;
			var S = From.substr(v,From.length-v);
			S = S.replace('|','&SBy=');
			S = SS + '&Page=' + S.replace('|','#QL');
			v = 'Search.php?SS=' + S;
		}
		else {
			var S = From.replace('|','&SCKey=');
			S = S.replace('|','&Page=');
			S = S.replace('|','&SBy=');
			S = S.replace('|','#QL');
			v = 'SProducts.php?CID=' + S;
		}
	}
	document.location.href=v;
}

function Checkout() {
	if(nPr == 0) {
		alert('Your shopping basket is empty.');
		return false;
	}
	if(!document.getElementById('Accept').checked) {
		alert('Before proceeding to pay for your order, you need to confirm that you have read and accept our Terms and Conditions.\n\nPlease "tick" our Terms and Conditions tick box (if you agree), then click the "Checkout" button to proceed to pay for your order.');
		return false;
	}
	
	if(!GUpdate()) { return false; }
	var v = Delivery();
	with(document.BForm) {
	 
	 action = 'Checkout.php';
	 submit();
	}
}

function holidaycheckout(msg)
{
 alert(msg)
}

function Delivery() {
	v = '';
	if(!document.BForm.DID[0]) {
		if(document.BForm.DID.checked) { v = document.BForm.DID.value; }
	}
	else {
		var N = document.BForm.DID.length;
		for(var i=0; i<N; i++) {
			if(document.BForm.DID[i]) {
				q = document.BForm.DID[i];
				if(q.checked) {
					v = q.value;
					break;
				}
			}
		}
	}
	return v;
}