var ProdSel;
var IsUpdt;

function PleaseAccept() {
	var Prod = "You are about to order the following SoftByte Labs products...\n\n";
	with (document.getElementById("Order")) {
		if ((BRF.checked && (BRQ.value > 0)) || (BRU.checked && (BRUQ.value > 0))) { Prod = Prod + "BrownRecluse\n"; }
		if ((BWF.checked && (BWQ.value > 0)) || (BWU.checked && (BWUQ.value > 0))) {
			if (BWV[0].checked) {Prod = Prod + "BlackWidow v4\n";}
			else {Prod = Prod + "BlackWidow v5\n";}
		}
		if ((CMF.checked && (CMQ.value > 0)) || (CMU.checked && (CMUQ.value > 0))) { Prod = Prod + "CloneMaster\n"; }
		if ((NWF.checked && (NWQ.value > 0)) || (NWU.checked && (NWUQ.value > 0))) { Prod = Prod + "NameWiz\n"; }
		if ((CPF.checked && (CPQ.value > 0)) || (CPU.checked && (CPUQ.value > 0))) { Prod = Prod + "Comparator Pro\n"; }
		if ((MXF.checked && (MXQ.value > 0)) || (MXU.checked && (MXUQ.value > 0))) { Prod = Prod + "MailTalkX\n"; }
		if (PGN.checked && (PGQ.value > 0)) { Prod = Prod + "Custom Plugin(s)\n"; }
		if (BDB.checked && (BDQ.value > 0)) { Prod = Prod + "Software Suite\n"; }
		if (SBB.checked && (SBQ.value > 0)) { Prod = Prod + "Spider Suite\n"; }
		if (CDB.checked && (CDQ.value > 0)) { Prod = Prod + "All our Shareware on CD-ROM\n"; }
		Prod = Prod + "\nTotal amount: " + TotalAmount.value.toString() + "\n";
	}
	Prod = Prod + "\nAcknowledge that the above software(s) is/are what you are ordering,\nand that you have evaluated them first, and will not request any refunds.";
	return confirm(Prod);
}


function FormatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if (isNaN(num)) {num = "0";}
	cents = Math.floor((num*100+0.5)%100);
	num = Math.floor((num*100+0.5)/100).toString();
	if (cents < 10) {cents = "0" + cents;}
	for (var i=0; i<Math.floor((num.length-(1+i))/3); i++) {
		num = num.substring(0,num.length-(4*i+3)) + ',' + num.substring(num.length-(4*i+3));
	}
	return ("$" + num + '.' + cents);
}


function UpdateAmount(vkind) {

	var Total    = 0;
	var extTotal = 0;
	var Discount = 0;
	var ProdCode = 0;
	var SelCount = 0;

	function CalcPrice(qty,Price) {
		var t;
		for (var i=1; i<=qty; i++) {
			if (i < 100) { t = Price/(1+((i-1)/10)); } else
			if (i < 250) { t = Price/(1+((i-1)/25)); } else
			if (i < 500) { t = Price/(1+((i-1)/50)); } else
			if (i < 1000) { t = Price/(1+((i-1)/75)); } else
			if (i < 5000) { t = Price/(1+((i-1)/100)); } else
			{ t = Price/(1+((i-1)/500)); }
			Total += t;
			Discount += (Price-t);
		}
	}

	function FixQty(objchk,objqty) {
		if (objqty.disabled) {
			if (objqty.value !== 0) { objqty.value = 0 ; return(1); }
		} else {
			if (objqty.value == 0) { objqty.value = 1 ; return(1); }
		}
		return(0);
	}

	function FixQtyBut(objchk,objqty) {
		objqty.disabled = !objchk.checked;
		if (FixQty(objchk,objqty) == 1) { return; }
	}

	function FixUpdBut(objchk,objqty,objown) {
		objchk.disabled = !objown.checked;
		objqty.disabled = (objchk.disabled || !objchk.checked);
		if (FixQty(objchk,objqty) == 1) { return; }
	}

	ProdSel = 0;
	IsUpdt = 0;

	with (document.getElementById("Order")) {

		FixQtyBut(BRF,BRQ) ; FixQtyBut(BWF,BWQ) ; FixQtyBut(CMF,CMQ) ; FixQtyBut(NWF,NWQ) ; FixQtyBut(CPF,CPQ) ; FixQtyBut(MXF,MXQ);
		FixQtyBut(CDB,CDQ) ; FixQtyBut(PGN,PGQ) ; FixQtyBut(BDB,BDQ) ; FixQtyBut(SBB,SBQ);

		FixUpdBut(BRU,BRUQ,BRUC) ; FixUpdBut(BWU,BWUQ,BWUC) ; FixUpdBut(CMU,CMUQ,CMUC) ; FixUpdBut(NWU,NWUQ,NWUC);
		FixUpdBut(CPU,CPUQ,CPUC) ; FixUpdBut(MXU,MXUQ,MXUC) ; FixUpdBut(CPU,CPUQ,CPUC);

		if (BWF.checked && (BWQ.value > 0)) { CalcPrice(BWQ.value, 39.95) ; ProdSel++ ; ProdCode |= 1; }
		if (CMF.checked && (CMQ.value > 0)) { CalcPrice(CMQ.value, 39.95) ; ProdSel++ ; ProdCode |= 2; }
		if (BRF.checked && (BRQ.value > 0)) { CalcPrice(BRQ.value, 79.95) ; ProdSel++ ; ProdCode |= 4; }
		if (NWF.checked && (NWQ.value > 0)) { CalcPrice(NWQ.value, 29.95) ; ProdSel++ ; ProdCode |= 8; }
		if (CPF.checked && (CPQ.value > 0)) { CalcPrice(CPQ.value, 29.95) ; ProdSel++ ; ProdCode |= 16; }
		if (MXF.checked && (MXQ.value > 0)) { CalcPrice(MXQ.value, 29.95) ; ProdSel++ ; ProdCode |= 32; }

		if (BWU.checked && BWUC.checked && (BWUQ.value > 0)) { CalcPrice(BWUQ.value, 19.95) ; ProdSel++ ; ProdCode |= 64 ; IsUpdt++; }
		if (CMU.checked && CMUC.checked && (CMUQ.value > 0)) { CalcPrice(CMUQ.value, 19.95) ; ProdSel++ ; ProdCode |= 128 ; IsUpdt++; }
		if (BRU.checked && BRUC.checked && (BRUQ.value > 0)) { CalcPrice(BRUQ.value, 39.95) ; ProdSel++ ; ProdCode |= 256 ; IsUpdt++; }
		if (NWU.checked && NWUC.checked && (NWUQ.value > 0)) { CalcPrice(NWUQ.value, 14.95)  ; ProdSel++ ; ProdCode |= 512 ; IsUpdt++; }
		if (CPU.checked && CPUC.checked && (CPUQ.value > 0)) { CalcPrice(CPUQ.value, 14.95)  ; ProdSel++ ; ProdCode |= 1024 ; IsUpdt++; }
		if (MXU.checked && MXUC.checked && (MXUQ.value > 0)) { CalcPrice(MXUQ.value, 14.95)  ; ProdSel++ ; ProdCode |= 2048 ; IsUpdt++; }

		if ((PGN.checked) && (PGQ.value > 0)) { extTotal += (PGQ.value * 35.00) ; SelCount++ ; ProdCode |= 4096; }
		if ((BDB.checked) && (BDQ.value > 0)) { extTotal += (BDQ.value * 99.95) ; ProdSel++  ; ProdCode |= 8192; }
		if ((SBB.checked) && (SBQ.value > 0)) { extTotal += (SBQ.value * 99.95) ; ProdSel++  ; ProdCode |= 16384; }
		if ((CDB.checked) && (CDQ.value > 0)) { extTotal += (CDQ.value * 12.95 + 2) ; SelCount++ ; ProdCode |= 32768; }

		if (ProdSel > 1) {
			t = Total;
			Total = Total/1.1;
			Discount += (t-Total);
		}

		OldReg.disabled = (IsUpdt == 0);

		SubTotal.value = FormatCurrency(Total+extTotal+Discount);
		TotalAmount.value = FormatCurrency(Total+extTotal);
		TotalDiscount.value = FormatCurrency(Discount);

		if (ProdCode == 0) {
			ProductCode.value = "";
		} else {
			ProductCode.value = "SBL_" + ProdCode;
		}
	}
}

function CheckAccept() {
	with (document.getElementById("Order")) {
		if (TotalAmount.value == "$0.00") {
			alert("You MUST select a product before ordering.");
			//BRF.focus();
			return false;
		} else if ((RegistrationName.value == '') && (ProdSel !== 0)) {
			alert("'Name of registration' required.");
			RegistrationName.focus();
			return false;
		} else if ((RegistrationName.value.length < 8) && (ProdSel !== 0)) {
			alert("'Name of registration' MUST be 8 or more characters.");
			RegistrationName.select();
			RegistrationName.focus();
			return false;
		} else if ((OldReg.value == '') && (IsUpdt !== 0)) {
			alert("'Previous registration' required for upgrades.");
			OldReg.focus();
			return false;
		} else if ((OldReg.value.length < 6) && (IsUpdt !== 0)) {
			alert("'Previous registration' is invalid");
			OldReg.select();
			OldReg.focus();
			return false;
		}
		if (PleaseAccept()) {
  		return true;
		}
		return false;
	}
}
