/*
if (navigator.appName == "Netscape" && 
	navigator.appVersion.substring(0,1) == "4") {

	alert("You are currently running Netscape v.4.xx browser.\n\n" +
		"To shop online, please use either Internet Explorer or " +
		"Netscape version 5 and above.  We are sorry for this " +
		"inconvenience");
}
*/
var ic = 0;
var bc = 0;
var shchg = 0;
var memsel = 0;
var ilimit = 0;
var memstart = 0;
var paypal = "DL@kullmanlaw.com";

function roundNumber(rnum) {
	var rlength = 2; // The number of decimal places to round to
	if (rnum > 8191 && rnum < 10485) {
		rnum = rnum-5000;
		var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
												newnumber = newnumber+5000;
											} else {
												var newnumber = Math.round(rnum*Math.pow(10,rlength))/Math.pow(10,rlength);
											}
											return newnumber;
										}

function checkRAnum() {

	with (document.shpaddr.ranum) {

		var num = value.toString();

		for (var i = 0; i < num.length; i++) {
			if (num.substring(i,i+1) < "0" ||
			    num.substring(i, i+1) > "9") {
			// if (!parseInt(value.substring(i,i-1))) {
				alert("Member ID should contain only numbers");
				focus();
				return;
			}
		}
	}
}

function cartHelp() {

	var hw = open("/storehelp.html", "uspcsCartHelp", "width=600,height=500");

	hw.focus();
}

function add2Cart(e, n, d, opt) {

	if (document.shpaddr.whereto.selectedIndex == 0) {

		alert("Please select where you will be shipping the item to first!");
		e.checked = false;

		if (document.all) {
			document.all.shptab.bgColor="pink";
		} 
			
		document.shpaddr.whereto.focus();

		return;
	}

	if (opt == "Members" && document.shpaddr.ranum.value == "") {

		alert("Please enter your membership number to purchase member-priced item");

		e.checked = false;

		if (document.all) {
			document.all.memtab.bgColor = "pink";
		}

		document.shpaddr.ranum.focus();

		return;
	}

	if (eval('document.pub.inum_' + n)) {

		inum = eval('document.pub.inum_' + n + '.selectedIndex');

		if (inum == 0) {
			alert('Please select the Issue # for this item first.');
		
			e.checked = false;

			return;
		}

	}

	// hq 8/5/08 handles special membership sales 
	if (eval('document.pub.item_number_' + n + 
		'.value.indexOf("SM")==0')) {
		var myr = eval('document.pub.item_number_' + n +
				'.value.substring(2,3)');
		var iname = "SM" + myr + eval('document.pub.item_number_' + n +
				'.value.substring(3,4)');
		if (eval('document.pub.item_number_' + n +
			'.value == iname')) {
			memsel = (!e.ischecked)?myr:0;
			ilimit = eval('document.pub.item_number_' + n +
				'.value.substring(3,4)');
			memstart = n;
			if (!memsel) {
			// reset items
			for (i = n + 1; i <= n + 4; i++) {
				eval('document.pub.amount_' + i + 
					'.checked = false');
			}
			}
		} else if (!memsel || memsel != myr) {

			alert('Please select ' + myr + 
			'-Year Membership first before purchasing this item.');
			e.checked = false;

			return;
		} else {
			var limitcnt = 0;
			for (i = memstart + 1; i <= memstart + 4; i++) {
				if (eval('document.pub.amount_' + i +
					'.checked')) limitcnt++;
			}
			if (limitcnt > ilimit) {
				alert('You may only purchase up to ' + ilimit + 
					' items in this group.');
				e.checked = false;
				return;
			}
		}
	}
			
	// eq 9/19/08 handles input fields embedded in description
	itemNum = eval('document.pub.item_number_' + n + '.value');
	if (eval('document.pub.in_' + itemNum + '_txt1')) {
		if (eval('document.pub.in_' + itemNum + '_txt1.value==""')) {
			alert('Please enter the text to be printed on your badge');
			e.checked = false;
			return;
		}
	}

	e.checked = e.ischecked = !e.ischecked;
}

function checkout() {

	var items = "";
	var icnt = 1;
	var optname = "";
	var iopt = "";
	var iselnum = "";
	var iselname = "";
	var iqty = qtyval = 0;
	var ic = bc = 0;
	var icamt = 2.25;
	var icAddAmt = 0;
	var pocnt = 0;
	var bcamt = 0;
	var cdsh = 0;
	var lbs = 0;
	var oz = 0;
	var ilbs, ioz;
	
	// window.status = "Summarizing order, please wait ";
	var statwin = dhtmlwindow.open("store", "inline", "Summarizing order, please wait . . .", "Order Summary", "width=400px,height=150px,center=1");
	statwin.show();
	var statvar = "";

	with (document.pub) {

	os = (document.shpaddr.whereto.selectedIndex > 1);

	for (var i = 0; i < length; i++) {

		// eq 9/19/08 added the following in description input fields
		if (elements[i].name.indexOf('_txt1') >= 0) {
			optname = "Line 1";
			iopt = elements[i].value;
		}

		if (elements[i].name.indexOf('_txt2') >= 0) {
			iselname = "Line 2";
			iselnum = elements[i].value;
		}

		if (elements[i].name.indexOf('_txt3') >= 0) {
			iselnum += ", Line 3: " + elements[i].value;
		}

		if (elements[i].name.indexOf('item_name_') >= 0) {
			iname = elements[i].value;
			// start of new item, so we reset weight
			ilbs = ioz = 0;
		}
			
		if (elements[i].name.indexOf('item_number_') >= 0)
			inum = elements[i].value;

		if (elements[i].name.indexOf('quantity_') >= 0) {
			qtyval = parseInt(elements[i].value);
			if (isNaN(qtyval)) qtyval = 1;
		}
			
		if (elements[i].name.indexOf('item_option_') >= 0 && iopt == "")
			iopt = elements[i].value;

		if (elements[i].name.indexOf('item_sh_') >= 0) {
			if ((os && elements[i].name.indexOf('item_sh_os_') >=0) ||
			(!os && elements[i].name.indexOf('item_sh_os_') < 0))
				cdshchg = parseFloat(elements[i].value);
		}

		if (elements[i].name.indexOf('item_lbs_') >= 0)
			ilbs = parseFloat(elements[i].value);
			
		if (elements[i].name.indexOf('item_oz_') >= 0)
			ioz = parseFloat(elements[i].value);
			
		if (iopt != "" && optname == "") optname = "Option";

		if (iopt == "Members") 
			iopt = "Member #" + document.shpaddr.ranum.value;
		
		if (elements[i].name.indexOf('inum_') >= 0) {
			for (var j = 1; j < elements[i].options.length; j++) {
				if (elements[i].options[j].selected) {

				iselnum += ((iselnum!="")?",":"") +
						elements[i].options[j].value;
				iselname = "Issue#";
				iqty++;
				}
			} 
		}

		if (elements[i].name.indexOf('amount_') >= 0) {
			if (elements[i].checked) {

			if (iqty == 0) iqty = 1;

			iqty *= qtyval;

			items += "<INPUT type=hidden name='item_name_" + icnt +
				"' value='" + iname + "'>" +
				"<INPUT type=hidden name='item_number_" + icnt +
				"' value='" + inum + "'>" +
				"<INPUT type=hidden name='amount_" + icnt +
				"' value='" + elements[i].value + "'>" +
				"<INPUT type=hidden name='on0_" + icnt +
				"' value='" + optname + "'>" +
				"<INPUT type=hidden name='os0_" + icnt +
				"' value='" + iopt + "'>" +
				"<INPUT type=hidden name='on1_" + icnt +
				"' value='" + iselname + "'>" +
				"<INPUT type=hidden name='os1_" + icnt +
				"' value='" + iselnum + 
				((qtyval > 1)?" ("+qtyval+" ea)":"") +
				"'>" +
				"<INPUT type=hidden name='quantity_" + icnt +
				"' value='" + iqty + "'>" +
				"\n";

			itype = inum.substring(0,1);

			if ((itype == "1" & inum != 111) || itype == "3") ic += iqty;
			else if ((itype == "2" && !os && inum.indexOf("cd") < 0) || itype == "4" || itype == "5" || itype == "7") bc += iqty;

			if (inum == 507) bc += 2 * iqty; // 3 book item

			if (inum == 111) icAddAmt = -2.25; // special shipping chg
			if (!isNaN(ilbs)) lbs += ilbs * iqty;
			if (!isNaN(ioz)) oz += ioz * iqty;

			if (inum >= 800 && inum <= 899) cdsh += cdshchg;

			optname = "";
			iopt = "";
			iselnum = "";
			iselname = "";
			iqty = 0;
			qtyval = 0;

			icnt++;
			}
		}

		// if ( i % 60 == 0 ) window.status += ">>";
		if ( i % 60 == 0 ) {
			statvar += ">>";
			// statwin.load("inline", statvar, "Order Summary");
		}

	} // for
			
	if (items == "") {

		alert("Shopping Cart is Empty");

		return;
	}

	// window.status = "Finalizing ... ";
	// statwin.load("inline", "Finalizing ... ", "Order Summary");

	if (ic > 0) {

		if (ic > 1) {
			icamt = 4.50; // 2 copies assumed
			if (ic > 2) icamt += ((ic - 2) * 1.00);
		}	
		icamt += icAddAmt;
		items += "<INPUT type=hidden name='item_name_" + icnt +
			"' value='Shipping/Handling for Chronicles'>" +
			"<INPUT type=hidden name='amount_" + icnt +
			"' value='" + icamt + "'>" +
			"<INPUT type=hidden name='quantity_" + icnt +
			"' value='1'>";
		icnt++;
	}

	if (bc > 0) {
		bc -= pocnt; // deduct number of preorder books
		if (bc > 0) {
			bcamt = (os)?10:5;
			if (bc - 1 > 0) bcamt += (bc - 1) * ((os)?3:2);
		}
		bcamt += (pocnt * shchg); // special preorder shipping rate
		items += "<INPUT type=hidden name='item_name_" + icnt +
			"' value='Shipping/Handling for Publications/Exhibits" +
			((os)?" (Foreign)":"") +
			"'>" +
			"<INPUT type=hidden name='amount_" + icnt +
			"' value='" + bcamt + "'>" +
			"<INPUT type=hidden name='quantity_" + icnt +
			"' value='1'>";
		icnt++;
	}

	if (os && (lbs > 0 || oz > 0)) {
		var cc = document.shpaddr.whereto.selectedIndex;
		// round off oz to next pound
		xlbs = Math.ceil(oz / 16);
		lbs += xlbs;
		country = document.shpaddr.whereto.options[cc].value;
		bkshpamt = osMbagRates[country][0];
		shptype = "USPS M-Bags";
		if (lbs > 11) {
			bkshpamt += osMbagRates[country][1] * (lbs - 11);
			if (lbs <= 20) {
				// use flat rate box for weights btwn 11-20 lbs
				// for canada and mexico
				var usefrb = 0;
				if ((country == 1 || country == 2) &&
					bkshpamt > osfrb[1]) usefrb = osfrb[1];
				else if (bkshpamt > osfrb[0]) usefrb = osfrb[0];
				if (usefrb > 0) {
					shptype = "USPS Intl Flat Rate Box";
					bkshpamt = usefrb;
				}
			}
		}
		items += "<INPUT type=hidden name='item_name_" + icnt +
			"' value='Ship via " + shptype + " to " +
			document.shpaddr.whereto.options[cc].text +
			" (weight=" +
			roundNumber(lbs) + " lbs)'> " +
			"<INPUT type=hidden name='amount_" + icnt +
			"' value='" + roundNumber(bkshpamt) + "'>" +
			"<INPUT type=hidden name='quantity_" + icnt +
			"' value='1'>";
		icnt++;
	}		

	if (cdsh > 0) {
		items += "<INPUT type=hidden name='item_name_" + icnt +
			"' value='Shipping/Handling for CDRs'> " +
			"<INPUT type=hidden name='amount_" + icnt +
			"' value='" + cdsh + "'>" +
			"<INPUT type=hidden name='quantity_" + icnt +
			"' value='1'>";
	}

	} // with document.pub

	// window.status = "Sending order to Paypal ...";
	// statwin.load("inline", "Sending order to Paypal ...", "Order Summary");

	var ppwin = open("", "paypal");

	if (ppwin) 
		ppwin.focus();
	else
		alert("Problem forwarding your orders to Paypal.  Your browser's popup blocker maybe preventing USPCS from opening new window.  Please change your setting to allow USPCS website to use popup and try checkout again.  Thank you.");

	with (ppwin.document) {

		open();

		// hq 8/5/2008 determines paypal email addr to use
		// for books only or membership/books purchases
		if (memsel) {
			paypal = "membershipchairman@uspcs.org";
		}
		writeln(
		'<BODY onload="document.paypal.submit()">' +
		'<FORM name=paypal action="https://www.paypal.com/cgi-bin/webscr" method="post">' +
		'<input type="hidden" name="cmd" value="_cart">' +
		'<input type="hidden" name="upload" value="1">' +
		'<input type="hidden" name="business" value="' + paypal + '">' +
		items +
		'<input type="hidden" name="cn" value="Comments">' +
		'<input type="hidden" name="no_note" value="0">' +
		'<input type="hidden" name="currency_code" value="USD">' +
		'<input type="hidden" name="no_shipping" value="0">' +
		'<input type="hidden" name="return" value="http://www.uspcs.org/thankyou.html">' +
		'<input type="hidden" name="cancel_return" value="http://www.uspcs.org/store.html">' +
		'</form>');

		close();		
	}

	statwin.hide();
}
