//$Id: checkout.js,v 1.223 2010/03/22 17:56:26 jason Exp $
var priceCol=false,old_freight_parms="",timerOffset=0;
var FRC, FRC_err=false, Freight_bad=false, Freight_wait=false, Fr_timer_tries=0, setFileUpload;
var Shipto_bad=false, Shipto_busy=false, Shipto_timer_tries = 0;
var Last_OK_shipto="", Last_shipto_checked="~~~~~~~~~~~~~~~~~~~~~";
var DocDir = ""+window.location;
function http_request() {
	if(window.XMLHttpRequest) {
		try {
			return new XMLHttpRequest();
		} catch(e) {
			return false;
		}
	} else if(window.ActiveXObject) { // MSIE 5-6.0
		var version = ["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0", "MSXML2.XMLHTTP","Microsoft.XMLHTTP"];
		for (var j = 0; j < version.length; j++) {
			try {
				return new ActiveXObject(version[j]);
				break;
			} catch(e) {
			}
		}
	}
	return false;
}

if (! DocDir.match(/https:\/\/.*\/~.*?\//)) {
	DocDir = "";
}
var asterisk='<span class="alerttext">&nbsp;*</span>';

function takeWin(no_check) {
	var j, k, f, q;
	if ( typeof ks_main.sub_main == "undefined" || typeof ks_main.sub_main.document == "unknown") {
		return true;
	}
	var doc=ks_main.sub_main.document;
	f=doc.forms[0];
	var which = reqfile ? Review : this;
	if (Imp_attn) {
		if (impr_force_view) {
			if (confirm("You have to Edit and View the proof of your item before adding to the order so that you know all the information on the item is correct. Click OK to fix.")) {
				return false;
			}
		} else {
			if (confirm("The item just ordered was not added because required fields were empty. Click OK to fix.")) {
				return false;
			}
		}
		Imp_attn = false;
	}
	if (Imp_unsaved) {
		var pgid = doc.getElementById("imp_field_edit");
		if (pgid) {
			var buf = "";
			for (j = 0; j < f.elements.length; j++) {
				if (f.elements[j].name.indexOf("field_") == 0 || f.elements[j].name.indexOf("bfield_") == 0) {
					buf += f.elements[j].value;
				}
			}
			if (f.cksum.value != Crc32Str(buf)) {
				if (confirm("The changes were not saved. Click OK, then click one of the links at the bottom of the page to fix or click Cancel to abandon.")) {
					return false;
				}
			}
		} else {
			alert("The changes made to the imprint fields were not saved.");
		}
		Imp_unsaved = false;
	}
	if (! no_check && needNewOrder == true) {
		newOrder(true);

	}
	if (no_check && doc.title != "FinishOrder" && doc.title != Tags["specitem"] && doc.title != "Shopping Basket") {
		return true;
	}
	if (doc.title == "FinishOrder") {
		orderInProgress = true;
		setSelected();
		reqNo = f.reqNo.value;
		cust_id = f.cust_id.value;
		Subs_cust = f.cust_id.value;
		fullName = f.fullName.value;
		dateOrdered = f.dateOrdered.value;
		phone = f.phone.value;
		custName = f.custName.value;
		if (typeof f.custCC != "undefined") {
			custCC = f.custCC.value;
		}
		if (typeof f.custShipto != "undefined") {
			custShipto = f.custShipto.value;
		}
		shipAddr1 = f.shipAddr1.value;
		shipAddr2 = f.shipAddr2.value;
		shipAddr3 = f.shipAddr3.value;
		shipCity = f.shipCity.value;
		shipState = f.shipState.value.toUpperCase();
		shipZip = f.shipZip.value;
		shipFcode = f.shipFcode.value;
		shipType = f.shipType.value;
		orderAgreement = f.orderAgreement.value;
		if (show_country) {
			shipCountry = f.shipCountry.value;
		}
		if ((custName+shipAddr1+shipAddr2+shipAddr3+shipCity+shipState+shipZip).replace(/\s/g,"").length) {
			Address_entered = true;
		}
		deliveryInst = f.deliveryInst.value;
		login = f.login.value;
		shipVia = f.shipVia.value;
		if (shippingAckEmail) {
			shipAckEmail = f.shipAckEmail.value;
		}
		reqfile = f.reqfile.value;
		if (billTo) {
			btcustName = f.btcustName.value;
			btshipAddr1 = f.btshipAddr1.value;
			btshipAddr2 = f.btshipAddr2.value;
			btshipAddr3 = f.btshipAddr3.value;
			btshipCity = f.btshipCity.value;
			btshipState = f.btshipState.value.toUpperCase();
			btshipZip = f.btshipZip.value;
		}
		if (Ack_email_box) {
			which.Ack_email = esc_email(f.ack_email.value);
		}
		if (Do_special_instrs) {
			if (typeof f.specInst != "undefined") {
				Special_instrs = f.specInst.value;
			}
			if (typeof f.specInst1 != "undefined") {
				Special_instrs1 = f.specInst1.value;
			}
			if (typeof f.specInst2 != "undefined") {
				Special_instrs2 = f.specInst2.value;
			}
		}
		if (which.Show_tax && f.shipFcode.value != "F") {
			if ( ! isEmpty(shipCity+shipState+shipZip)) {
				f.shipState.value = skrunch(f.shipState.value);
				if ( ! check_state(f)) {
					return false;
				}
			}
		}
	} else if (doc.title == "SpecifyItems") {
		return orderSpecItems(doc);
	} else if (doc.title == "Shopping Basket") {
		return update_basket(true);
	}
	if (Has_unset_qty) {
		for (j = 1; j <= Item_cnt; j++) {
			q = On_order[j];
			if (q.is_imprint) {
				for (k = 0; k < q.cnt; k++) {
					q.qty_is_set[k] = true;
				}
			}
		}
		Has_unset_qty = false;
	}
	return true;
}
function check_state(f) {
	var zip = skrunch(f.shipZip.value);
	if ( zip.match(/^\d+\$/) && (zip.length == 5 || zip.length == 9 )) {
		if (! checkStateCode(f.shipState,"US") && !CountryDropDown) {
			return false;
		}
	} else if ( zip.length == 6 && zip.match(/^([A-Z]\d){3}\$/) ) {
		if (! checkStateCode(f.shipState,"CA")) {
			return false;
		}
	}
	shipState = skrunch(f.shipState.value);
	shipZip = f.shipZip.value;
	return true;
}

function fix_reqNo() {
	var f = ks_main.sub_main.document.forms[0];
	f.reqNo.value = f.reqNo.value.replace(/[^0-9A-Za-z-]/g,"");
}

function fix_dateOrdered() {
	if (! reqfile) {
		var k = new Date();
		var d0 = new Date(dateOrdered);
		if ((k - timeOffset - d0) > 86400000) { // a day in msec
			var d1_ = new Date(k - timeOffset);
			var newDateOrdered = (1 + d1_.getMonth())+"/"+d1_.getDate()+"/"+d1_.getFullYear();
			var d1 = new Date(newDateOrdered)
			f.dateOrdered.value = newDateOrdered;
			dateOrdered = newDateOrdered;
		}
	}
}

function checkOrder() {
	var f, j, k, q;
	var which = reqfile ? Review : this;

	if (orderSubmitted) return false;

	if (! takeWin() ) return false;

	f = ks_main.sub_main.document.forms[0];
	fix_reqNo();
	if (f.reqNo.value.length == 0) {
		if ( ! Auto_req_no ) {
			alert("Please provide a "+Tags['order']+" for this order");
			f.reqNo.focus();
		} else {
			reqNo_busy = true;
			getNextReqNo("");
			Rq_timer_tries = 0;
			At_startup = false;
			setTimeout("test_reqno()",100);
			setHdrFocus = true;
			alert("There was a problem with the "+Tags['order']+". Please try again.");
			return false;
		}
		if (f.reqNo.value.length == 0) {
			return false;
		}
	}
	fix_dateOrdered();
	var org_cnt = Item_cnt;
	for (j = Item_cnt; j >= 1; j--) {
		if (On_order[j]) {
			q = On_order[j];
			for (k = q.cnt - 1; k >= 0; k--) {
				if (q.qty <= 0) {
					alert("Item "+q.formNo+":"+q.formName+" is being removed because there is no order quantity.");
					deleteFromOrd(j, k);
				}
			}
		}
	}

	if (Item_cnt == 0) {
		alert("Please order some items before submitting");
		if (org_cnt) {
			return finish_ord();
		}
		return false;
	}
	if (! checkDate(f.dateOrdered)) {
		return false;
	}
	f.overLimit.value = overLimit;
	if (! Phone_checked ) {
		if (! checkUSPhone(f.phone, ! RequirePhone)) {
			return false;
		}
	}
	Phone_checked = true;
	if (cost_ctr_split) {
		if (! mk_cost_ctr(f)) {
			return false;
		}
	}
	if (which.RequireCC) {
		if (typeof f.custCC.value == "undefined" ||  isEmpty(" "+f.custCC.value) ) {
			alert(Tags['cc']+" must be filled in.");
			if ( ! which.ShowCCpop ) {
				if (cost_ctr_split) {
					f.splitCC0.focus();
				} else {
					f.custCC.focus();
				}
			}
			return false;
		}

	}
	if (which.RequireShipto) {
		if ( isEmpty(" "+f.custShipto.value) ) {
			alert(Tags['shipto']+" must be filled in.");
			if (which.ShiptoPop != 1) {
				f.custShipto.focus();
			}
			return false;
		}
	}
	if (which.RequireCompany) {
		if ( isEmpty(" "+f.custName.value) ) {
			alert(Tags['company']+" must be filled in.");
			f.custName.focus();
			return false;
		}
	}
	if (which.RequireAttn) {
		if ( isEmpty(" "+f.shipAddr1.value) ) {
			alert(Tags['address1']+" must be filled in.");
			f.shipAddr1.focus();
			return false;
		}
	}
	if (which.RequireDeliv) {
		if (delivery_menu) {
		        var index = f.deliveryInst.selectedIndex;
		        if (index == 0) {
				alert(Tags['deliveryInst']+" must be selected.");
				f.deliveryInst.focus();
				return false;
        		}
        	}
		else if  ( isEmpty(" "+f.deliveryInst.value) ) {
			alert(Tags['deliveryInst']+" must be filled in.");
			f.deliveryInst.focus();
			return false;
		}
	}
	if ( isEmpty(f.shipAddr2.value) && isEmpty(f.shipAddr3.value) && !dontRequireAddress) {
		f.shipAddr2.focus();
		alert("Please provide a shipping street address.");
		return false;
	}
	if ( isEmpty(f.shipCity.value) && !dontRequireAddress) {
		f.shipCity.focus();
		alert("Please fill in the shipping City field.");
		return false;
	}
	if ( f.shipAddr1.value || f.shipAddr2.value || f.shipAddr3.value ||
			f.shipCity.value || f.shipState.value || f.shipZip.value ) {
		if ( f.shipFcode.value != "F" && !dontRequireAddress && !CountryDropDown) {
			if ( ! isEmpty(f.shipState.value) || isEmpty(f.shipZip.value) || hasDigits(f.shipZip.value)) {
				if (! checkStateCode(f.shipState)) {
					return false;
				}
				if ((CountryDropDown && (f.shipCountry.options[f.shipCountry.selectedIndex].value == 'US' || f.shipCountry.options[f.shipCountry.selectedIndex].value == 'CA')) || !CountryDropDown) {
					if (! checkZIPCode(f.shipZip)) {
						return false;
					}
				}
			}
		}
	}
	if (show_country && CountryDropDown && f.shipCountry.selectedIndex == 0) {
		f.shipCountry.focus();
		alert("Please select a country from the dropdown menu.");
		return false;
	}
	if (billTo) {
		if ( isEmpty(f.btshipAddr1.value) &&
					isEmpty(f.btshipAddr2.value) &&
						isEmpty(f.btshipAddr3.value )) {
			f.btshipAddr1.focus();
			alert("Please provide a billing street address.");
			return false;
		}
		if ( isEmpty(f.btshipCity.value)) {
			f.btshipCity.focus();
			alert("Please fill in the billing City field.");
			return false;
		}
		if ( f.btshipAddr1.value || f.btshipAddr2.value || f.btshipAddr3.value ||
				f.btshipCity.value || f.btshipState.value || f.btshipZip.value ) {
			if (! checkStateCode(f.btshipState)) {
				return false;
			}
			if (! checkZIPCode(f.btshipZip)) {
				return false;
			}
		}
	}
	if (which.Ack_email_box && which.RequireEmail) {
		if ( isEmpty(f.ack_email.value)) {
			f.ack_email.focus();
			alert("Please fill in the E-mail field.");
			return false;
		}
	}
	if (ExtraField1 && ExtraField1Req) {
		if (ExtraField1Names.length > 0) {
		        var index = f.extraField1.selectedIndex;
		        if (index == 0) {
				alert("Please select from the " + Tags["extra_field_1"] + " dropdown.");
				f.extraField1.focus();
				return false;
			}
		} else {
			if (isEmpty(f.extraField1.value)) {
				alert("Please fill in the " + Tags["extra_field_1"] + " field.");
				f.extraField1.focus();
				return false;
			}
		}
	}
	if (Shipto_check) {
		if (Shipto_busy) {
			alert("Still waiting to verify the ship-to code. Click OK to continue.");
			return false;
		}
		if (Shipto_bad) {
			alert("This "+Tags.shipto+" code can not be used. Please enter or select another.");
			f.custShipto.focus();
			return false;
		}
	}
	if (EnableShipType) {
		if (f.shipTypeSel.selectedIndex == 0) {
			alert("Please indicate whether or not this "+Tags.shipType+" is Residential, Commercial or International.");
			f.shipTypeSel.focus();
			return false;
		}
	}
	if (Freight_bad) {
		alert("This shipping method can not be used. Please select another.");
		f.shipViaSel.focus();
		return false;
	}
	if (Freight_wait) {
		alert("Please wait while on-line " + Tags["freight"] + " charges are retrieved.  Then you may continue with placing your order.");
		return false;
	}
	f.billFreight.value = billFreight;
	if (which.Show_freight && billFreight == '0.00' && typeof Freight[FRC] != "undefined" && Freight[FRC]["meth"] == 1 && noFreightCnt != Item_cnt) {
		billFreight = '';
		billFreight = freight_calc(freightTotal, totalWeight, shipZip, Item_cnt);
		alert("Please wait while on-line " + Tags["freight"] + " charges are retrieved. Then you may continue with placing your order.");
		return false;
	}

	if (OrderHeaderAgreement) {
		if (!f.orderAgree.checked) {
			alert('You must agree to the ' + Tags["imprint_terms"] + ' before before continuing.');
			return false;
		}
	}

	f.tax.value = tax;
	orderSubmitted = true;
	needNewOrder = true;
	f.holdMe.value = holdMe;

	// potentially setup different routing...
	if (chargeFreightOnly && billFreight > 0) {
		ks_main.sub_main.document.forms[0].action=FinishURL2;
	}

	return true;
}
function check_shipto() {
	var f = ks_main.sub_main.document.forms[0];
	var _request, lines = new Array();
	if (Shipto_busy) {
		confirm("Waiting to verify the ship-to code. Click OK to continue waiting.");
		return false;
	}
	var shipto = trim(f.custShipto.value);
	if ( shipto != "main" ) {
		shipto = shipto.toUpperCase();
	}
	if (Last_shipto_checked != shipto) {
		Shipto_bad = true;
		Shipto_busy = true;
		var args = 'key='+Key+'&shipto='+shipto+'&check_only=1';
		_request = http_request();
		_request.open('post', CgiDir+'/shiptoget3.cgi', true);
		_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		_request.onreadystatechange = function() {
			if (_request.readyState == 4) {
				lines = _request.responseText.split("\n");
				one_shipto_data(lines,true,Tags["shipto"]);
			}
		}
		_request.send(args);
		Last_shipto_checked = shipto;

		var d1, d0 = Number(new Date())+1000; // milliseconds
		while (Shipto_busy && Number(new Date()) < d0) {
		}
		d0 = Number(new Date())+60000; // milliseconds
		while (Shipto_busy && Number(new Date()) < d0) {
			if (! confirm("Waiting to verify the ship-to code. Click OK to continue waiting.")) {
				return false;
			}
		}
		return Shipto_bad;
	} else {
		if (Shipto_bad) {
			alert("This "+Tags.shipto+" code can not be used. Please enter or select another.");
			f.custShipto.focus();
			return false;
		}
		return true;
	}
}
function setSelected() {
	var f = ks_main.sub_main.document.forms[0];
	var which = reqfile ? Review : this;
	var index = f.shipViaSel.selectedIndex;
	if (index != -1) {
		f.shipVia.value = f.shipViaSel.options[index].value;
		set_FRC(index);
	}
	if (! reqfile && which.ShiptoPop == 1) {
		index = f.custShiptoSel.selectedIndex;
		if (index != -1) {
			custShipto = f.custShipto.value = f.custShiptoSel.options[index].value;
		}
	}
	set_cost_center(f);
}

function set_cost_center(f) {
	var index, which = reqfile ? Review : this;
	if (which.ShowCCpop) {
		index = f.custCCSel.selectedIndex;
		if (index != -1) {
			f.custCC.value = f.custCCSel.options[index].value;
		}
	}
}

function set_FRC_idx(via) {
	var which = reqfile ? Review : this;
	var idx=-1, j, arr;
	var ref = set_multi_ref(which.Multi,which.Vias,which.Other_Vias);
	for (j = 0; j < ref.length; j++) {
		arr = ref[j].split("\t");
		if (arr[0] == via) {
			idx = j;
			break;
		}
	}
	return idx;
}

function set_FRC(idx) {
	var which = reqfile ? Review : this;
	var j,arr;
	FRC = 0;
	FRC_err = false;
	if (idx >= 0) {
		if (! which.Show_freight) {
			idx--;
		}
		if (idx >= 0) {
			var ref = set_multi_ref(which.Multi,which.Vias,which.Other_Vias);
			arr = ref[idx].split("\t");
			if (typeof Freight[arr[2]] != "undefined") {
				FRC = arr[2];
				Carrier_code =arr[3];
			}
		}
	}
}
function set_multi_ref(multi,main_ref,other_ref) {
	var ref;
	if (multi) {
		if (typeof Subs_cust == "undefined" || gCust_id == cust_id) {
			ref = main_ref;
		} else if (typeof other_ref[Subs_cust] != "undefined") {
			ref = other_ref[Subs_cust];
		} else {
			ref = main_ref;
		}
	} else {
		ref = main_ref;
	}
	return ref;
}
// --------------------
function show_basket(){
	if ( ! Init ) {
		startup();
	}
	var title = ks_main.sub_main.document.title;
	if (title == "Shopping Basket") {
		From_basket = true;
	} else {
		From_basket = false;
		Basket_return =title;
		if (! takeWin() ) return;
	}
	if ( unknownItems != '' ) {
		var url= CgiDir+'/item_details3.cgi?key='+Key+';cust_id='+Subs_cust;
		url += ';login='+login+';login_cust='+cust_id;
		url += ';pcat='+My_name+';ccat='+Hot_name;
		url += ';func=parent.parent.show_basket2();items='+ unknownItems;
		unknownItems = '';
		ks_main.sub_main.location.href= url;
	} else {
		show_basket2();
	}
}
function show_basket2() {
	var d = ks_main.sub_main.document;
	var which = reqfile ? Review : this;
	if (typeof d.images['stock_status'] != "undefined") {
		d.images.stock_status.src = stock_check_img.src;
	}
	Page = '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">';
	Page += '<HTML><HEAD><TITLE>Shopping Basket</TITLE>\r';
	Page += '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r';
	Page += '<LINK REL="stylesheet" TYPE="text/css" HREF="'+Style_sheet+'">\r';
	Page += '</HEAD><BODY>\r';
	Page += '<DIV CLASS="title">'+Tags["showbask"]+'</DIV>\r';
	Page += '<FORM ENCTYPE="multipart/form-data" METHOD="post">\r';

	showItems(true);
	if (Basket_text) {
		Page += '<BR><SPAN CLASS="subheadertext">'+Basket_text+'</SPAN>';
	}
	Page += '<BR><BR>';
	var continue_ord = true;
	if (Basket_return == "Catalog") {
		if (typeof LastCatPage.args != "undefined" && LastCatPage.args) {
			Page += '<A HREF="'+LastCatPage.args+'">';
		} else if (typeof LastCatPage.cat != "undefined") {
			Page += '<A HREF="javascript:parent.parent.menu_go(';
			Page += "'"+LastCatPage.cat+"','"+LastCatPage.desc+"','"+LastCatPage.status+"','"+LastCatPage.id+"'";
			Page += ",'"+LastCatPage.target+"','"+LastCatPage.nxt+"','"+LastCatPage.fids+"','"+LastCatPage.limit+"'";
			Page += ')" onMouseOver="status=&#039;&#039;;return true">';
		} else {
		}
	} else if (Basket_return.substring(0,9) == "imprints:") {
		var arg = new Array();
		arg = Basket_return.substring(9).split(";")
		Page += '<A HREF="parent.parent.menu_go(';
		Page += "'"+arg[0]+"','"+arg[1]+"','','"+arg[2]+"','','','','')";
		Page += ' onMouseOver="status=&#039;&#039;;return true">';
	} else if (Basket_return == "Splash") {
		if (typeof ks_main.left_menu.document.forms[0] == "undefined") {
			continue_ord = false;
		} else {
			Page += '<A HREF="javascript:ks_main.left_menu.document.forms[0].submit()" onMouseOver="status=&#039;&#039;;return true">';
		}
	} else if (Basket_return == "Search") {
		if ( IsMSIE ) {
			Page += '<A HREF="javascript:history.back()" onMouseOver="status=&#039;&#039;;return true">';
		} else {
			Page += '<A HREF="javascript:history.back();history.forward()" onMouseOver="status=&#039;&#039;;return true">';
		}
	} else if ( Basket_return == "SpecifyItems") {
		Page += '<A HREF="'+DocDir+'/catalog/item_list.html">';
	} else {
		continue_ord = false;
	}
	if (continue_ord) {
		Page += 'Continue Shopping</A>\r&nbsp;|&nbsp;';
	}
	if (Permit & 1) {
		Page += '<A HREF="javascript:document.location.replace(&#039;javascript:void parent.parent.update_basket(true);parent.parent.show_basket();&#039;)" onMouseOver="status=&#039;&#039;;return true">'+Tags["recalculate"]+'</A>\r&nbsp;|&nbsp;';
		 Page += '<A TARGET="sub_main" HREF="javascript:void parent.parent.finish_ord()" onMouseOver="status=&#039;&#039;;return true">'+Tags["finishord"]+'</A>';
		if (qtyLookup) {
			Page += '&nbsp;|&nbsp;<A HREF="javascript:parent.parent.qtyLookupWindow()">Quantity Lookup</A>';
		}
		if (FileUpload || setFileUpload) {
			Page += '&nbsp;|&nbsp;<A HREF="javascript:parent.parent.file_upload()">Upload Files</A>';
		}
		if (TextAttach) {
			Page += '&nbsp;|&nbsp;<A HREF="javascript:parent.parent.text_attach()">Update Item Text</A>';
		}
	}
	Page += '<INPUT TYPE="hidden" NAME="key" VALUE="'+Key+'">\r';
	Page += '</FORM><IFRAME HEIGHT=1 NAME="talk_to" STYLE="visibility:hidden;" SRC="/catalog/closet.html"></IFRAME>\r';
	if (which.Auto_stock_check) {
		Page += '<SCRIPT TYPE="text/javascript">parent.parent.checkStock();</SCRIPT>\r';
	}
	Page += '</BODY></HTML>\r';

	d.open();
	d.writeln(Page);
	d.close();
	d.title = "Shopping Basket"; // FF1.5 hack
	total_breakdown(which);
	return;
}

function showItems(modifiable) {
	var which = reqfile ? Review : this;
	var cnt,fidx,j,k,q,priceLine,sellPrice,sellPrice_pu,wd,field;
	var dispPrice,tmp_str,got_imprints = false;
	priceCol=false;
	if ( No_prices != "X" ) {
		var price;
		for (j = 1; j <= Item_cnt; j++) {
			if (On_order[j]) {
				q = On_order[j];
				price = show_prices(1,q.flags);
				if (price != " ") {
					for (k = 0; k < q.cnt; k++) {
						if (q.price[k] || q.ncp) {
							priceCol=true;
							break;
						}
					}
				}
				if ( priceCol ) {
					break;
				}
			}
		}
	}
	for (j = 1; j <= Item_cnt; j++) {
		if (On_order[j]) {
			if ( On_order[j].is_imprint ) {
				got_imprints=true;
				break;
			}
		}
	}

	tmp_str = "";
	var wrap = "";
	if (Set_company && modifiable) {
		tmp_str = '<IMG CLASS="icon" SRC="'+DocDir+'/catalog/pic/but_chkh_off1.gif" ALT="hot list button">&nbsp;Add to Hot List&nbsp;&nbsp;&nbsp;&nbsp;<IMG SRC="'+DocDir+'/catalog/pic/but_chkh_on1.gif" HEIGHT=18 WIDTH=15 ALT="hot list button">&nbsp;Remove from Hot List&nbsp;&nbsp;&nbsp;&nbsp;';
		wrap++;
	}
	if (Set_personal && modifiable) {
		tmp_str += '<IMG CLASS="icon" SRC="'+DocDir+'/catalog/pic/but_chk_off1.gif" ALT="my list button">&nbsp;Add to My List&nbsp;&nbsp;&nbsp;&nbsp;<IMG SRC="'+DocDir+'/catalog/pic/but_chk_on1.gif" HEIGHT=18 WIDTH=15  ALT="my list button">&nbsp;Remove from My List&nbsp;&nbsp;&nbsp;&nbsp;';
		wrap++;
	}
	if (wrap) {
		tmp_str += '<BR>';
	}
	if (which.Do_stock_check) {
		tmp_str += '<SPAN STYLE="white-space:nowrap;"><IMG SRC="'+DocDir+'/catalog/pic/stockstatus.gif" BORDER=0 ALT="stock status button">&nbsp;Inventory availability</SPAN>&nbsp;&nbsp;&nbsp;&nbsp;';
	}
	if (modifiable == true) {
		tmp_str += '<SPAN STYLE="white-space:nowrap;"><IMG CLASS="icon" SRC="'+DocDir+'/catalog/pic/but_x_r1.gif" ALT="delete item button">&nbsp;Cancel Item</SPAN>&nbsp;&nbsp;&nbsp;&nbsp;';
	}
	if (got_imprints == true && modifiable) {
		tmp_str += '<SPAN STYLE="white-space:nowrap;"><IMG CLASS="icon" SRC="'+DocDir+'/catalog/pic/pict1.gif" ALT="show imprint button">&nbsp;View or Modify Imprint</SPAN>';
	}
	if ( tmp_str.length ) {
		Page += '<DIV STYLE="font-size: 10px;text-align:left;margin-left:0px;">'+tmp_str+'</DIV>\r';
	}


	Page += '<TABLE CLASS="tgen" SUMMARY="for layout"><TR>\r';
	if (Basket_lines) {
		Page += '<TH STYLE="width: 18px" CLASS="reverse">&nbsp;\r';
	}
	Page += '<TH STYLE="width: 150px" CLASS="reverse">Item\r';
	Page += '<TH STYLE="width: 190px" CLASS="reverse">Description\r';
	var do_price_per_MorPU = (doPricePerM || doPricePerPU) ? true: false;
	if (do_price_per_MorPU) {
		Page += '<TH STYLE="width: 40px" CLASS="reverse">U/I\r';
		Page += '<TH STYLE="width: 60px" CLASS="reverse">EA<BR>per U/I\r';
		Page += '<TH STYLE="width: 60px" CLASS="reverse">Units Ordered\r';
		if (priceCol) {
			if ( doPricePerM) {
				tmp_str = "Price<BR>per M \$";
			} else {
				tmp_str = "Unit<BR>Price";
			}
			Page += '<TH STYLE="width: 60px" CLASS="reverse">'+tmp_str+'\r';
			Page += '<TH STYLE="width: 60px" CLASS="reverse">Total Price \$\r';
		}
	} else {
		if (priceCol) {
			Page += '<TH STYLE="width: 60px" CLASS="reverse">U/I\r';
			Page += '<TH STYLE="width: 60px" CLASS="reverse">Price \$\r';
		} else {
			Page += '<TH STYLE="width: 60px" CLASS="reverse">U/I\r';
		}
		Page += '<TH STYLE="width: 60px" CLASS="reverse">Qty\r';
	}

	if (which.Do_stock_check) {
		var w = 40;
		if ( typeof document.all != "undefined" ) { // MSIE
			w += 12;
		}
		Page += '<TH STYLE="width:'+w+'px" CLASS="reverse"><A HREF="#" onMouseOver="status=&#039;&#039;;return true" onClick="parent.parent.checkStock();return false;"><IMG SRC="'+DocDir+'/catalog/pic/stockstatus.gif" TITLE="Stock Availability"  NAME="stock_status" BORDER=0 ALT="stock status button"></A>\r';
	}
	if (FileUpload && modifiable == true) {
		Page += '<TH STYLE="width: 230px" CLASS="reverse" NOWRAP>Uploaded File\r';
	}
	if (TextAttach && modifiable == true) {
		Page += '<TH STYLE="width: 230px" CLASS="reverse" NOWRAP>Item Text\r';
	}

	if (modifiable == true) {
		wd = 60;
		if ( Set_company ) {
			wd += 18;
		}
		if ( Set_personal ) {
			wd += 18;
		}
		if ( got_imprints ) {
			wd += 18;
		}
		Page += '<TH CLASS="reverse" STYLE="width: '+wd+'px;">\r';
	}

	var deleted;
	do {
		deleted = 0;
		for ( cnt = 1; cnt <= Item_cnt; cnt++) {
			q = On_order[cnt];
			if (q.formName == '***Do Not Order***') {
				for (j = 0; j < q.cnt; j++) {
					deleteFromOrd(cnt,j);
				}
				deleted = 1;
				alert("Item "+q.formNo+" is a \'"+Tags['dont_order']+"\' item. It will not be included on the order.");
				break;
			}
		}
	} while (deleted);

	var qty_check=false, fsize=do_price_per_MorPU ? "_pr" : "";
	var form_no, i_num, form_name, price_is_shown, priceUnit, priceExtd="", d2d, iStat, orderQty, img, base, br, IDtmp;
	totalSell = totalBillable = mdseBillable = mdseValue = fidx = totalWeight = freightTotal = noFreightCnt = 0;
	Feign_billable = false;

	for ( cnt = 1; cnt <= Item_cnt; cnt++) {
		if (On_order[cnt]) {
			q = On_order[cnt];

			form_no = q.formNo;
			i_num = q.i_num;
			form_name = q.formName;

			if ( ! Pass_bad_items && form_name == '***Not Found***') {
				var tqty = 0;
				for ( k = 0; k < q.cnt; k++ ) {
					tqty += q.qty[k];
					q.qty[k] = 0;
				}
				if ( tqty ) {
					alert("Item "+form_no+" is not in any catalog. It will not be included on the order.");
				}
			}

			priceUnit = q.unit;
			d2d = doPricePerM  ? 1000 / q.qty_unit : 1;
			d2d = (doPricePerPU && Number(q.qty_pu)) ? q.qty_unit / q.qty_pu : d2d;
			if ( On_order[cnt].status == null || On_order[cnt].status == "") {
				iStat = "&nbsp;";
			} else {
				iStat = On_order[cnt].status;
			}
			for ( k = 0; k < q.cnt; k++ ) {
				fidx++;
				orderQty = q.qty[k];
				price_is_shown = show_prices(1, q.flags) == 1 ? true : false;
				sellPrice_pu = compute(q.price[k], orderQty, q.ncp, q.cbreaks, q.cprices);
				sellPrice = d2d * sellPrice_pu;
				if (price_is_shown) {
					dispPrice = dollars(sellPrice_pu, true);
					if ( doPricePerPU && sellPrice) {
						if ( q.pu != "U" ) {
							dispPrice += "/"+q.pu;
						} else {
							dispPrice += "/"+priceUnit;
						}
					}
				} else {
					dispPrice = "";
				}
				if (priceCol) {
					priceLine = '<TD CLASS="gen" STYLE="text-align: right"><INPUT TYPE="hidden" NAME="sellPrice'+fidx+'" ';
					priceLine += 'VALUE='+sellPrice+'>'+dispPrice;
					if ( do_price_per_MorPU ) {
						priceExtd = '<TD CLASS="gen">';
						if (price_is_shown) {
							priceExtd += dollars(orderQty * sellPrice, false);
						}
					}
				} else {
					priceLine = '<TD STYLE="display:none"><INPUT TYPE="hidden" NAME="sellPrice'+fidx+'" VALUE='+sellPrice+'>';
				}

				Page += '<TR>';
				if (Basket_lines) {
					Page += '<TD CLASS="gen">'+fidx;
				}
				Page += '<TD CLASS="gen"><INPUT TYPE="hidden" NAME="formNo'+fidx+'" ';
				Page += 'VALUE="'+form_no+'">'+form_no+'\r';

				if ( q.is_imprint ) {
					IDbuf = makeID(q,k);
					br = "<BR>";
				} else {
					IDbuf = br = "";
				}
				Page += '<TD CLASS="gen"><INPUT TYPE="hidden" NAME="formName'+fidx+'" ';
				Page += 'VALUE="'+form_name+'">'+form_name+br+IDbuf+'\r';
				Page += '<TD CLASS="gen" STYLE="text-align: right"><INPUT TYPE="hidden" NAME="priceUnit'+fidx+'" ';
				if ( do_price_per_MorPU ) {
					Page += 'VALUE="'+priceUnit+'">'+priceUnit+'\r';
					Page += '<TD CLASS="gen" STYLE="text-align: right">'+q.qty_unit+'\r';
				} else if ( q.pu != "U") {
					Page += 'VALUE="'+priceUnit+'">'+priceUnit+'/'+q.qty_unit+'\r';
				} else if ( q.pu == "U" && q.qty_unit > 1) {
					Page += 'VALUE="'+priceUnit+'">'+priceUnit+'/'+q.qty_unit+'\r';
				} else {
					Page += 'VALUE="'+priceUnit+'">'+priceUnit+'\r';
				}
				Page  += '<INPUT TYPE="hidden" NAME="flags'+fidx+'" VALUE="'+q.flags+'">\r';
				Page += '<INPUT TYPE="hidden" NAME="ui'+fidx+'" VALUE="'+q.pu+'">\r';
				Page += '<INPUT TYPE="hidden" NAME="qty_unit'+fidx+'" VALUE="'+q.qty_unit+'">\r';
				Page += '<INPUT TYPE="hidden" NAME="qty_pu'+fidx+'" VALUE="'+q.qty_pu+'">\r';
				Page += '<INPUT TYPE="hidden" NAME="mfgr'+fidx+'" VALUE="'+esc(q.mfgr)+'">\r';
				Page += '<INPUT TYPE="hidden" NAME="vpart_no'+fidx+'" VALUE="'+esc(q.vpart_no)+'">\r';
				Page += '<INPUT TYPE="hidden" NAME="ID'+fidx+'" VALUE="'+IDbuf+'">\r';
				Page += '<INPUT TYPE="hidden" NAME="hold'+fidx+'" VALUE="'+((q.flags & 0x10000)?"item":"")+'">\r';
				Page += '\r';
				if ( ! (do_price_per_MorPU )) {
					Page += priceLine;
				}


				if (modifiable == true) {

					if (q.extLabel) {
						Page += '<TD CLASS="gen" STYLE="text-align:right;"><INPUT TYPE="hidden" NAME="orderQty'+fidx+'" ';
						Page += 'SIZE=3 VALUE="'+orderQty+'">'+orderQty;
					} else {
						Page += '<TD CLASS="gen"><INPUT CLASS="subheadertext" STYLE="padding:0px;margin:0px;" TYPE="text" NAME="orderQty'+fidx+'" SIZE=5 VALUE="'+orderQty+'">';
					}
					if (Qty_alert && priceUnit !="EA" && q.qty_unit>2 && orderQty>q.qty_unit/2 ) {
						Page += '<FONT COLOR="RED">*</FONT>';
						qty_check=true;
					}
					Page += '<INPUT TYPE="hidden" NAME="ptr" VALUE="'+fidx+'">\r';
					if ( do_price_per_MorPU ) {
						Page += priceLine;
						Page += priceExtd;
					}
					if (which.Do_stock_check) {
						if (which.Auto_stock_check) {
							iStat = "<MARQUEE WIDTH=43>Checking stock</MARQUEE>";
						}
						Page += '<TD ID="ss'+k+'-'+q.i_num+'" CLASS="gen">'+iStat+'\r';
					} else if (q.extLabel) {
						Page += '<TD>\r';
					}

					base = "cancel";
					img = base+fidx;
					Page += '<TD><A HREF="javascript:document.location.replace(&#039;javascript:void parent.parent.deleteIt(document.forms[0],'+cnt+','+k+')&#039;)" onMouseOver="status=&#039;&#039;;return true" onMouseDown="parent.parent.press(&#039;'+img+'&#039;,&#039;'+base+'&#039;,&#039;&#039;,&#039;&#039;)" onMouseOut="parent.parent.unpress(&#039;'+img+'&#039;,&#039;'+base+'&#039;,&#039;&#039;,&#039;&#039;)">'
					Page += '<IMG CLASS="icon" SRC="'+DocDir+'/catalog/pic/but_x_r1.gif" TITLE="Remove from the order"  NAME="'+img+'" BORDER=0 HEIGHT=18 ALT="remove item"></A>\r'

					var pretitle;
					if (Set_company && form_name != '***Not Found***' && ! (q.flags & 0x8400) && !q.extLabel) {
						base = (typeof Hot_list[form_no] != "undefined" && Hot_list[form_no]) ? "on":"off";
						pretitle = base == "on" ? "Remove from":"Add to";
						img = "my_clist"+fidx;
						Page += '<A HREF="javascript:parent.parent.to_quicky(&#039;'+form_no+'&#039;,&#039;'+q.i_num+'&#039;,&#039;h&#039;,&#039;'+img+'&#039;)" onMouseOver="status=&#039;&#039;;return true">'
						Page += '<IMG CLASS="icon" SRC="'+DocDir+'/catalog/pic/but_chkh_'+base+'1.gif" TITLE="'+pretitle+' the hot list"  NAME="'+img+'" onMouseDown="parent.parent.press(&#039;'+img+'&#039;,&#039;'+base+'&#039;,&#039;'+form_no+'&#039;,&#039;h&#039;)" onMouseOut="parent.parent.unpress(&#039;'+img+'&#039;,&#039;'+base+'&#039;,&#039;'+form_no+'&#039;,&#039;h&#039;)" ALT="hot list is '+base+' button"></A>\r'
					}
					if (Set_personal && form_name != '***Not Found***' && ! (q.flags & 0x8400) && !q.extLabel) {
						base = (typeof My_list[form_no] != "undefined" && My_list[form_no]) ? "on":"off";
						pretitle = base == "on" ? "Remove from":"Add to";
						img = "my_plist"+fidx;
						Page += '<A HREF="javascript:parent.parent.to_quicky(&#039;'+form_no+'&#039;,&#039;'+q.i_num+'&#039;,&#039;&#039;,&#039;'+img+'&#039;)" onMouseOver="status=&#039;&#039;;return true">'
						Page += '<IMG CLASS="icon" SRC="'+DocDir+'/catalog/pic/but_chk_'+base+'1.gif" TITLE="'+pretitle+' my list"  NAME="'+img+'" onMouseDown="parent.parent.press(&#039;'+img+'&#039;,&#039;'+base+'&#039;,&#039;'+form_no+'&#039;,&#039;&#039;)" onMouseOut="parent.parent.unpress(&#039;'+img+'&#039;,&#039;'+base+'&#039;,&#039;'+form_no+'&#039;,&#039;&#039;)" ALT="my list is '+base+' button"></A>\r'
					}
					Page += '\r';

					if ( q.is_imprint && !q.extLabel ) {
						IDtmp = makeID(q,k,true,true);
						Page += '<A HREF="imp_main.cgi?i_num='+i_num+';user_data_id='+q.db_idx[k]+';user_data_backer_id=';
						for (field in q.imprint[k]) {
							if (field.search(/^\d*$/) != -1) {
								q.imprint[k][field] = q.imprint[k][field].replace(/&#034;/g,'"');
								Page += ';field_'+field+'='+escape(q.imprint[k][field]);
							}
							if (field == "ship2_0" && typeof q.imprint[k][field] != "undefined" ) {
								q.imprint[k][field] = q.imprint[k][field].replace(/&#034;/g,'"');
								Page += ';'+field+'='+escape(q.imprint[k][field]);
							}
						}
						if (typeof q.imprintBk[k] != "undefined") {
							for (field in q.imprintBk[k]) {
								if (field.search(/^\d*$/) != -1) {
									q.imprintBk[k][field] = q.imprintBk[k][field].replace(/&#034;/g,'"');
									Page += ';bfield_'+field+'='+escape(q.imprintBk[k][field]);
								}
								if (field == "ship2_1" && typeof q.imprintBk[k][field] != "undefined" ) {
									q.imprintBk[k][field] = q.imprintBk[k][field].replace(/&#034;/g,'"');
									Page += ';'+field+'='+escape(q.imprintBk[k][field]);
								}
							}
						}
						Page += ';imp_idx='+q.imp_idx[k]+';IDfields='+q.IDfields+';IDfieldsBk='+q.IDfieldsBk+';option=view_ord;key='+Key+'"';
						Page += ' onMouseDown="parent.parent.press(&#039;pict'+fidx+'&#039;,&#039;pict&#039;,&#039;&#039;,&#039;&#039;)"';
						Page += ' onMouseOut="parent.parent.unpress(&#039;pict'+fidx+'&#039;,&#039;pict&#039;,&#039;&#039;,&#039;&#039;)">';
						Page += '<IMG SRC="'+DocDir+'/catalog/pic/pict1.gif" TITLE="'+IDtmp+'"  NAME="pict'+fidx+'" BORDER=0 HEIGHT=18 ALT="go to imprint '+IDtmp+'"></A>\r';
					}
					if (FileUpload || (q.flags & (1<<18))) {
						setFileUpload = 1;
						if (q.file_upload) {
							Page += '<SPAN CLASS="subheadertext">&nbsp;File:&nbsp;</SPAN>\r';
							Page += '<SPAN CLASS="maintext">'+q.file_upload+'</SPAN>\r';
							Page += '&nbsp;&nbsp;<SPAN CLASS="maintext">\r';
							Page += '<A HREF="item_file_upload.cgi?delete=1&fidx='+fidx+'&key='+Key+'">(Remove)</A>&nbsp;</SPAN>\r';
						} else {
							Page += '&nbsp;<INPUT TYPE="file" SIZE=10 NAME="upload_file'+fidx+'">&nbsp;\r';
						}
					}
					if (TextAttach) {
						if (FileUpload || (q.flags & (1<<18))) {
							Page += '</TD><TD>\r';
						}
						if (q.text_attach) {
							Page += '<INPUT TYPE="hidden" NAME="text_attach'+fidx+'" VALUE="'+q.text_attach+'">\r';
							Page += '<SPAN CLASS="subheadertext">&nbsp;Text:&nbsp;</SPAN>\r';
							Page += '<SPAN CLASS="maintext">'+q.text_attach+'</SPAN>\r';
							Page += '&nbsp;&nbsp;<SPAN CLASS="maintext">\r';
							Page += '<A HREF="item_text_attach.cgi?delete=1&fidx='+fidx+'&key='+Key+'">(Remove)</A>&nbsp;</SPAN>\r';
						} else {
							Page += '&nbsp;<INPUT TYPE="text" SIZE=20 NAME="text_attach'+fidx+'">&nbsp;\r';
						}
					}

				} else {
					Page += '<TD CLASS="gen" STYLE="text-align:right;"><INPUT TYPE="hidden" NAME="orderQty'+fidx+'" ';
					Page += 'SIZE=3 VALUE="'+orderQty+'">'+orderQty;
					if (Qty_alert && priceUnit !="EA" && q.qty_unit>2 && orderQty>q.qty_unit/2 ) {
						Page += '<FONT COLOR="RED">*</FONT>';
						qty_check=true;
					}
					Page += '\r';
					if ( do_price_per_MorPU ) {
						Page += priceLine;
						Page += priceExtd;
					}

					if (which.Do_stock_check) {
						Page += '<TD ID="ss'+k+'-'+q.i_num+'" CLASS="gen">'+iStat+'\r';
						iStat = "";
					}
					if (FileUpload || (q.flags & (1<<18))) {
						setFileUpload = 1;
						Page += '</TD><TD>\r';
						if (q.file_upload) {
							Page += '&nbsp;<SPAN CLASS="subheadertext">File:&nbsp;</SPAN>\r';
							Page += '<SPAN CLASS="maintext">'+q.file_upload+'</SPAN>&nbsp;\r';
							Page += '<INPUT TYPE="hidden" NAME="file_upload'+fidx+'" ';
							Page += 'VALUE="'+Key+'/'+q.file_upload+'">\r';
						} else {
							Page += '&nbsp;<SPAN CLASS="maintext">--</SPAN>&nbsp;\r';
						}
					}
					if (TextAttach) {
						Page += '</TD><TD>\r';
						if (q.text_attach) {
							Page += '<INPUT TYPE="hidden" NAME="text_attach'+fidx+'" VALUE="'+q.text_attach+'">\r';
							Page += '&nbsp;<SPAN CLASS="subheadertext">Text:&nbsp;</SPAN>\r';
							Page += '<SPAN CLASS="maintext">'+q.text_attach+'</SPAN>&nbsp;\r';
						} else {
							Page += '&nbsp;<SPAN CLASS="maintext">--</SPAN>&nbsp;\r';
						}
					}

				}
				if (typeof FRC == "undefined" && shipVia) {
					var idx = set_FRC_idx(shipVia);
					set_FRC(idx);
				}
				if (typeof Freight[FRC] != "undefined" && Freight[FRC]["weight_dflt"]) {
					if (q.weight == 0 && Freight[FRC]["weight_dflt"] > 0) {
						q.weight = Freight[FRC]["weight_dflt"];
					}
				}
				if (! (q.flags & (1<<19)) ) {
					totalWeight += orderQty * q.weight;
				}

				mdseValue += orderQty * sellPrice;
				if (q.billable || All_billable) {
					mdseBillable += sellPrice * orderQty;
					if (Charge_all_billable) {
						Feign_billable = true;
					}
				}
				if (show_prices(1, q.flags) != " ") {
					totalSell += orderQty * sellPrice;
					if (q.billable || All_billable) {
						totalBillable += sellPrice * orderQty;
					}
					if (! (q.flags & (1<<19)) ) {
						freightTotal += orderQty * sellPrice;
					} else {
						noFreightCnt++;
					}
				}
			}
		}
	}
	totalSell = dollars(totalSell + .0001 * priceCol,false);
	totalBillable = dollars(totalBillable + .0001 * priceCol,false);
	if (which.Show_freight && noFreightCnt != Item_cnt) {
		billFreight = freight_calc(freightTotal, totalWeight, shipZip, fidx);
	} else {
		billFreight = 0;
	}
	if (which.Show_tax) {
		tax = figure_tax( totalBillable, shipState, billFreight );
	} else {
		tax = 0;
	}
	if (which.Show_freight || which.Show_tax ) {
		priceLine = "<TR><TD><TD><TD>";
		if ( do_price_per_MorPU || priceCol ) {
			priceLine += "<TD>";
		}
		if (which.Show_freight && (Item_cnt || totalSell) && No_prices != "X" && noFreightCnt != Item_cnt) {
			Page += priceLine+"<TD CLASS='label' ALIGN='right'>"+Tags["freight"]+"<TD ALIGN='right' ID='freight'CLASS='gen' >"+billFreight+"\r";
		}
		if (which.Show_tax && (totalBillable || ! modifiable) && No_prices != "X") {
			Page += priceLine+"<TD CLASS='label' ALIGN='right'>Sales Tax<TD ALIGN='right' ID='tax' CLASS='gen'>"+tax+"\r";
		}
		var gtot = dollars(Number(totalSell) + Number(tax) + Number(billFreight), false);
		if (priceCol) {
			Page += priceLine+"<TD CLASS='label' ALIGN='right'>Total<TD ID='totalsell' CLASS='gen' ALIGN='right'>"+gtot+'\r';
		}
	}
	totalChargeable =Number(totalBillable) + Number(tax) + Number(billFreight);
	var price2show = dollars(totalChargeable, false);
	if (price2show == "") { price2show = "0.00"; }
	Page += '</TABLE>';
	if (qty_check) {
		if (Qty_check_alert) {
			Page += '<script type="text/javascript">alert("'+Qty_check_alert+'")</script>';
		}
		Page += 'The <SPAN STYLE="color:red">*</SPAN> indicates that you may have ordered more than you intended.<BR>';
	}
	Page += '<BR><B>Totals: </B><B>Line Items&nbsp;</B><INPUT TYPE="hidden" NAME="totallines" VALUE="'+fidx+'">'+fidx+'&nbsp;&nbsp;&nbsp;\r';
	if (priceCol) {
		Page += '<SPAN ID="total_breakdown"></SPAN>';
	}
	Page += '<INPUT TYPE="hidden" NAME="totalWeight" VALUE="'+totalWeight+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="mdseValue" VALUE="'+mdseValue+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="mdseBillable" VALUE="'+mdseBillable+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="chargecard_chargeable" VALUE="'+Boolean(Feign_billable||mdseBillable||billFreight||tax)+'">\r';
	if (which.Show_freight) {
		Page += '<INPUT TYPE="hidden" NAME="billFreight" VALUE="0">\r';
	}
	if (which.Show_tax) {
		Page += '<INPUT TYPE="hidden" NAME="tax" VALUE="0">\r';
	}
	tmp_str = doPricePerPU ? "PU" : doPricePerM ? "PM" : "";
	Page += '<INPUT TYPE="hidden" NAME="pricePerPU" VALUE="'+tmp_str+'">\r';
}

function show_prices(price,flags) {
	if (No_prices == 'X') {
		return " ";
	}
	if (No_prices.indexOf('P') != -1 && ! (flags & (1<<14))) {
		return " ";
	}
	if (No_prices.indexOf('B') != -1 && (flags & (1<<14)) && ! (flags & (1<<8))) {
		return " ";
	}
	if (No_prices.indexOf('O') != -1 && (flags & (1<<14)) && (flags & (1<<8))) {
		return " ";
	}
	return price;
}
function total_breakdown(which) {
	var tmsg, cmsg, price2show, d = ks_main.sub_main.document;
	if ( d.getElementById("total_breakdown")) {
		price2show = dollars(totalChargeable, false);
		if (price2show == "") { price2show = "0.00"; }
		var cmsg = (totalBillable != 0 || which.Show_tax) ? Tags["billable"] : Tags["prepaid"];
		if (SingleTotal) {
			tmsg = ' &nbsp;&nbsp;<SPAN STYLE="white-space:nowrap"><B>Order Total:&nbsp;\$</B><SPAN ID="totalsell" STYLE="display:inline;">'+totalSell+'</SPAN></SPAN>\r';
		} else {
			if ((totalBillable != 0 || which.Show_tax || billFreight) && totalBillable != totalSell) {
				tmsg = ' &nbsp;&nbsp;<SPAN STYLE="white-space:nowrap"><B>'+Tags["billable"]+'&nbsp;\$</B><SPAN ID="totalbill" STYLE="display:inline;">'+price2show+'</SPAN></SPAN>\r';
				tmsg += ' &nbsp;&nbsp;<SPAN STYLE="white-space:nowrap"><B>Mdse Including '+Tags["prepaid"]+'&nbsp;\$</B><SPAN ID="totalvalue" STYLE="display:inline;">'+totalSell+'</SPAN></SPAN>\r';
			} else {
				if (totalBillable != 0 || which.Show_tax) {
					price2show = dollars(Number(totalSell) + Number(tax) + Number(billFreight), false);
				} else {
					price2show = dollars(Number(totalSell) + Number(tax), false);
				}
				if (price2show == "") { price2show = "0.00"; }
				tmsg = ' &nbsp;&nbsp;<SPAN STYLE="white-space:nowrap"><B>'+cmsg+'&nbsp; \$</B><SPAN ID="totalsell" STYLE="display:inline;">'+price2show+'</SPAN></SPAN>\r';
			}
		}
		d.getElementById("total_breakdown").innerHTML = tmsg;
	}
	if ( d.getElementById("totalsell")) {
		d.getElementById("totalsell").innerHTML = dollars(Number(totalSell) + Number(tax) + Number(billFreight), false);
	}
}
function dollars(price,do_npt) {
	if (do_npt && (price == "" || Number(price) == 0) && No_price_text) {
		return No_price_text;
	}
	if ( ! price ) return "";
	var res = ''+ Math.round(eval(price) * 100 );
	while (res.length <= 2 ) {
		res = "0" + res;
	}
	var p = res.length - 2;
	return res.substring(0,p) + "." + res.substring(p, res.length );
}
function compute(price, qty, ncp, cbreaks, cprices) {
	var j;
	var breaks, prices;

	if ( ! ncp ) return price;
	if ( cbreaks == "undefined" || cprices == "undefined") {
		return price;
	}

// In March 2006 (V 1.98 & 1.101, changes were made to return a column price only when price!=0 and prices[x]<price.
// I think this was done only to deal with situations where Manager data was wrong, i.e. ncp==6 and column 6 price==0.
// That fix breaks a "price is more if you buy more" schedule, hence this simplification, which should produce the
// same messed up results as the Manager.
 
	breaks = cbreaks.split(",");
	prices = cprices.split(",");
	for ( j = 0; j < ncp; j++ ) {
		if ( qty <= Number(breaks[j]) ) {
			return prices[j];
		}
	}
	return prices[ncp - 1];
}
function show_charges() {
	var price2show, d = ks_main.sub_main.document;
	var f = d.forms[0];
	var which = reqfile ? Review : this;

	if (CountryDropDown && typeof f.shipCountry != "undefined") {
		shipCountry = f.shipCountry.options[f.shipCountry.selectedIndex].value;
		if (!shipZip && !shipCountry && !shipState) {
			return;
		}
	}
	if (which.Show_freight && noFreightCnt != Item_cnt) {
		billFreight = freight_calc(freightTotal, totalWeight, shipZip, Item_cnt);
		if ( typeof f.billFreight != "undefined" ) {
			f.billFreight.value = billFreight;
			if (d.getElementById("freight")) {
				d.getElementById("freight").innerHTML=billFreight;
			}
		}
	}
	tax = 0;
	if (typeof f.tax != "undefined" && which.Show_tax) {
		tax = figure_tax(totalBillable, shipState, billFreight);
		f.tax.value = tax;
		if (IsMSIE) {
			if (d.getElementById("tax").canHaveHTML) {
				d.getElementById("tax").innerHTML=tax;
			}
		} else {
			if (d.getElementById("tax")) {
				d.getElementById("tax").innerHTML=tax;
			}
		}
	}
	totalChargeable =Number(totalBillable) + Number(tax) + Number(billFreight);
	total_breakdown(which);
	if (typeof f.chargecard_chargeable != "undefined") {
		f.chargecard_chargeable.value = Boolean(totalChargeable || Feign_billable);
	}
}
function totalIt(form) {
	var cnt, k, totalItems, totalSell;
	var d = ks_main.sub_main.document;

	totalSell = totalItems = totalWeight = 0;
	for (cnt=1; cnt <= Item_cnt; cnt++) {
		if (On_order[cnt]) {
			var q = On_order[cnt];
			for ( k = 0; k < q.cnt; k++ ) {
				totalItems++;
				totalSell += q.qty[k] * q.price[k];
				if (! (q.flags & (1<<19)) ) {
					totalWeight += q.qty[k] * q.weight;
				}
			}
		}
	}
	totalSell = Math.round(100*totalSell) / 100;
	form.totallines.value = totalItems;
	if ( priceCol && d.getElementById("totalsell")) {
		d.getElementById("totalsell").innerHTML=dollars(totalSell, false);
	}
}
function update_basket(squawk) {
	var f, field, lastRow, q, r, index, v, err, warning;

	f = ks_main.sub_main.document.forms[0];
	if ( typeof f.ptr == "undefined") {
		return true;
	}
	lastRow = (typeof f.ptr.length != "undefined") ? f.ptr.length : 1;
	var ord_line = 1;
	var line_seq = 0;
	for ( r = 0; r < lastRow; r++) {
		field = f["orderQty"+(r+1)];
		if ( typeof On_order[ord_line] != "undefined" ) {
			q = On_order[ord_line];
			if ( q ) {
				err = false;
				v = stripWhitespace(field.value);
				if ( ! isInteger(v)) {
					err = true;
					if ( squawk ) {
						alert('Please enter a numeric quantity');
						field.focus();
						return false;
					}
				}
				if ( v < 0 ) {
					err = true;
					if ( squawk ) {
						alert("Can't have negative order quantities. Please fix or click the red \"X\".");
						field.focus();
						return false;
					}
				}
				if ( v == 0 ) {
					err = true;
					if ( squawk ) {
						alert('Please click the red "X" to remove an item with 0 order quantity.');
						field.focus();
						return false;
					}
				}
				if ( ! err ) {
					warning = check_item_qty_limit("", Number(v), Number(q.qty_limit), q.formNo);
					if (warning) {
						v = q.qty[line_seq] = q.qty_limit;
						alert(warning);
					}
					else {
						q.qty[line_seq] = Number(v);
					}
					warning = check_item_min_order("", Number(v), Number(q.min_order), q.formNo);
					if (warning) {
						q.qty[line_seq] = q.min_order;
						alert(warning);
					}
					else {
						q.qty[line_seq] = Number(v);
					}
				}
				if ( ++line_seq >= q.cnt ) {
					line_seq = 0;
					ord_line++;
				}
			} else {
				line_seq = 0;
				ord_line++;
			}
		}
	}
	return true
}
function update_basket_files(squawk) {
	var f, field, lastRow, q, r, index, v, warning;
	f = ks_main.sub_main.document.forms[0];
	if ( typeof f.ptr == "undefined") {
		return true;
	}
	if ( typeof f.del_fidx != "undefined") {
		On_order[f.del_fidx.value].file_upload = "";
		return true;
	}
	lastRow = (typeof f.ptr.length != "undefined") ? f.ptr.length : 1;
	var ord_line = 1;
	var line_seq = 0;
	for ( r = 0; r < lastRow; r++) {
		field = f["file"+(r+1)];
		if ( typeof On_order[ord_line] != "undefined" ) {
			q = On_order[ord_line];
			if ( q ) {
				if (field.value) {
					q.file_upload = field.value.replace(/ /g,"_");
				}
				if ( ++line_seq >= q.cnt ) {
					line_seq = 0;
					ord_line++;
				}
			} else {
				line_seq = 0;
				ord_line++;
			}
		}
	}
	return true
}
function update_basket_text(squawk) {
	var f, field, lastRow, q, r, index, v, warning;
	f = ks_main.sub_main.document.forms[0];
	if ( typeof f.ptr == "undefined") {
		return true;
	}
	if ( typeof f.del_fidx != "undefined") {
		On_order[f.del_fidx.value].text_attach = "";
		return true;
	}
	lastRow = (typeof f.ptr.length != "undefined") ? f.ptr.length : 1;
	var ord_line = 1;
	var line_seq = 0;
	for ( r = 0; r < lastRow; r++) {
		field = f["text_attach"+(r+1)];
		if ( typeof On_order[ord_line] != "undefined" ) {
			q = On_order[ord_line];
			if ( q ) {
				q.text_attach = field.value;
				if ( ++line_seq >= q.cnt ) {
					line_seq = 0;
					ord_line++;
				}
			} else {
				line_seq = 0;
				ord_line++;
			}
		}
	}
	return true
}
function deleteIt(form, seq, subseq) {
	var r, n;
	var line, lastline;
	if (On_order[seq]==null) {
		return false;
	}
	line = subseq + 1;
	for ( r = 1; r < seq; r++ ) {
		line += On_order[r].cnt;
	}
	lastline = 0;
	for ( r = 1; r <= Item_cnt; r++ ) {
		lastline += On_order[r].cnt;
	}

	deleteFromOrd( seq, subseq );

	if ( line < lastline ) {
		for ( r = line; r < lastline; r++) {
			n = r+1;
			form['orderQty'+r].value=form['orderQty'+n].value;
			form['sellPrice'+r].value=form['sellPrice'+n].value;
		}
	}
	totalIt(form);
	update_basket(false);
	show_basket();
	return false;
}
function freight_calc(amt, weight, zip, fidx) {
	var new_parms = FRC+"|"+Carrier_code+"|"+weight+"|"+amt+"|"+fidx;
	var j, d;

	if (typeof shipState != "undefined") {
		new_parms += "|"+shipState;
	}
	if (typeof zip != "undefined") {
		new_parms += "|"+zip;
	}
	if (CountryDropDown && typeof shipCountry != "undefined") {
		new_parms += "|"+shipCountry;
	}
	if (EnableShipType  && typeof shipType != "undefined") {
		new_parms += "|"+shipType;
	}
	var changed = (new_parms != old_freight_parms) ? true : false;
	if (billFreight == '') {
		changed = 'true';
	}
	old_freight_parms = new_parms;
	if (! fidx || FRC == 0 || (FRC_err && ! changed)) {
		return "0.00";
	}
	if (typeof FRC == "undefined" && shipVia) {
		var idx = set_FRC_idx(shipVia);
		set_FRC(idx);
	}
	if (typeof Freight[FRC] != "undefined") {
		switch (Freight[FRC]["meth"]) {
		case 1:
			if (changed) {
				var msg;
				if ((!shipState || ! zip || ! Carrier_code) && !CountryDropDown) {
					if (!shipState || ! zip) {
						old_freight_parms = "";
						d = ks_main.sub_main.document.forms[0];
						if (! Address_entered || ! d) {
							return "0.00";
						}
					}
					old_freight_parms="";
					if (!shipState) {
						msg=Tags["state"];
					} else if (! zip) {
						msg=Tags["zip"];
					} else if (! Carrier_code) {
						msg="complete freight configuration info";
					}
					alert("The "+msg+" is missing.");
					return "0.00";
				}
				Freight_bad = false;
				Freight_busy = true;
				Freight_wait = true;
				var request;
				if (Freight[FRC]["xml_ups"] == 'Y') {
					request = CgiDir+'/freight_charge_xml.cgi?rate_class='+FRC+';to_zip='+zip+';weight='+weight+';state='+shipState+';carrier_code='+Carrier_code+';country_code='+shipCountry+';totalsell='+totalSell+';shipType='+shipType+';cust_id='+cust_id;
				} else {
					request = CgiDir+'/freight_charge.cgi?rate_class='+FRC+';to_zip='+zip+';weight='+weight+';state='+shipState+';carrier_code='+Carrier_code+';country_code='+shipCountry+';totalsell='+totalSell+';shipType='+shipType;
				}

				ks_dump.location.replace(request);
				Fr_timer_tries = 0;
				setTimeout("test_freight_reload()",100);
			}
			if (billFreightErr) {
				FRC_err = true;
				billFreightErr=false;
				Freight_bad = true;
				alert(billFreight);
				return "0.00";
			} else {
				FRC_err = false;
			}
			return dollars(billFreight, false);
			break;
		case 2:
			Freight_wait = false;
			Freight_bad = false;
			return dollars( Freight[FRC]["flat_chg"] + Freight[FRC]["pcnt_sale"]*amt*.01 + Freight[FRC]["weight_mult"]*weight, false);
			break;
		case 3:
			Freight_wait = false;
			Freight_bad = false;
			for (j = 0; j < Freight[FRC]["bands"]; j++) {
				if (amt < Freight[FRC]["sale_amt"][j]) {
					return dollars(Freight[FRC]["fr_chg"][j], false);
				}
			}
			if (Freight[FRC]["m3_max"]) {
				return dollars(Freight[FRC]["m3_max"], false);
			} else {
				return dollars("0.00", false);
			}
			break;
		}
	}
	return "0.00";
}
function test_freight_reload() {
	if (Freight_busy && Fr_timer_tries++ < 100) {
		setTimeout("test_freight_reload()",100);
	} else {
		Freight_busy=false;
		show_charges();
		Freight_wait = false;
	}
}
function test_shipto_reload() {
	if (Shipto_busy && Shipto_timer_tries++ < 100) {
		setTimeout("test_shipto_reload()",100);
	} else {
		Shipto_busy=false;
	}
}
function figure_tax( billable, state, freight) {
	var tax = "0.00";
	freight = Number(freight);
	if ( isNaN(freight) ) {
		freight = 0;
	}
	billable = Number(billable);
	if ( isNaN(billable) ) {
		billable = 0;
	}
	if ( typeof Tax_rate[state] != "undefined" ) {
		switch ( Tax_rate[state][0] ) {
		case "USA":
			tax = dollars( .01 * Tax_rate[state][1] * ( billable + freight * Tax_freight[state][1] ), false);
			break;
		case "CAN":
			var j, tx =0;
			for ( j = 1; j <= 3; j++ ) {
				tx += Tax_rate[state][j] * ( billable + freight * Tax_freight[state][j]);
			}
			tax = dollars(.01 * tx, false);
			break;
		}
	}
	if (!billable && noTaxFreightZeroOrder) {
		tax = 0;
	}
	return tax;
}
var Items2check, Inums2check;
function checkStock(items,inums) {
	ks_main.sub_main.document.images.stock_status.src = stock_check_img_anim.src;
	if (typeof items != "undefined") {
		Items2check = items;
		Inums2check = inums;
	} else {
		Items2check = Inums2check = "";
	}
	setTimeout("checkStock2()",50);
}

function checkStock2() {
	var j, k, q, qty, items = "", delim1 = "%1E", delim2 = "%1C";
	var d = ks_main.sub_main.document;

	if (! takeWin()) {
		d.images.stock_status.src = stock_check_img.src;
		return;
	}
	var url= CgiDir+'/stockcheck.cgi?key='+Key;
	url += ';what=stockOK;cust_id='+ cust_id+ ';delim1='+ delim1 + ';delim2='+ delim2;

	if (Items2check) {
		url += ';func=ppp.show_istat2();mode=1;items='+Items2check+';inums='+Inums2check;
	} else {
		url += ';func=ppp.show_istat();items=';
		for (j = 1; j <= Item_cnt; j++) {
			if (On_order[j]) {
				qty = 0;
				q = On_order[j];
				for ( k = 0; k < q.cnt; k++ ) {
					qty += q.qty[k];
				}
				items += skrunch(q.formNo)+delim2+qty+delim1;
			}
		}
		url += items;
	}
	ks_main.sub_main.talk_to.location.replace(url);
}

function show_istat() {
	var j, el, q, istat, flag, d=ks_main.sub_main.document;
	if (ks_main.sub_main.document.images.stock_status) {
		ks_main.sub_main.document.images.stock_status.src=stock_check_img.src;
	}
	for (j = 1; j <= Item_cnt; j++) {
		q = On_order[j];
		if ( q.cnt > 0) {
			for (var k = 0;  k < q.cnt; k++ ) {
				el = d.getElementById("ss"+k+"-"+q.i_num);
				if (el) {
					istat = "&nbsp;";
					if ( q.status != null && q.status != "") {
						istat = q.status;
					}
					if (istat == 'none') {
						el.innerHTML='<SPAN CLASS="alerttext">' + Tags["nostock"] + '</SPAN>';
						flag = "true";

					} else {
						el.innerHTML=istat;
					}
					if (Number(q.qty) > Number(istat)) {
						flag = "true";
					}
				}
			}
		} else {
			el = d.getElementById("ss0-"+q.i_num);
			if (el) {
				istat = "&nbsp;";
				if ( q.status != null && q.status != "") {
					istat = q.status;
				}
				if (istat == 'none') {
					el.innerHTML='<SPAN CLASS="alerttext">' + Tags["nostock"] + '</SPAN>';
					flag = "true";
				}
				if (Number(q.qty) > Number(istat)) {
					flag = "true";
				}
			}
		}
	}
	if (Backordered && flag) {
		var title = ks_main.sub_main.document.title;
		if (title == "FinishOrder") {
			alert(Backorder_alert);
		}
	}
}
function show_istat2() {
	var j, k, el, q, qty, tot, istat, s=ks_main.sub_main;
	var d=s.document;
	if (d.images.stock_status) {
		d.images.stock_status.src=stock_check_img.src;
	}
	for (j = 1; j <= Item_cnt; j++) {
		q = On_order[j];
		if (typeof On_hand[q.i_num] != "undefined") {
			qty = On_hand[q.i_num];
			if (! qty || isNaN(qty)) {
				q.status = qty;
			} else {
				tot = 0;
				for ( k = 0; k < q.cnt; k++ ) {
					tot += q.qty[k];
				}
				if (tot <= qty) {
					q.status = "OK";
				} else {
					q.status = qty;
				}
			}
		}
	}
	var i_num = s.i_num_active;
	el = d.getElementById("stock_avail");
	if (i_num) {
		istat = "";
		if (el) {
			if ( typeof On_hand[i_num] != "undefined" && On_hand[i_num] != "") {
				istat = "Available: "+On_hand[i_num];
			}
		}
		el.innerHTML = istat;
	} else if (el) {
		el.innerHTML = 'Select a '+s.thingy+' to see availability.';
	}
}

//--------------------------------------------//
function which_button(form,button) {
	holdMe = false;
	if (Shipto_check && ! check_shipto()) {
		return false;
	}
	var which = reqfile ? Review : this;
	if (button==0){
		form.action=which.FinishURL;
 	} else if (button==3) {
		form.orderMethod.value="moneyOrder";
		form.action=which.FinishURL3;
 	} else {
		form.action=which.FinishURL2;
	}
	return true;
}
function holdme() {
	if (Shipto_check && ! check_shipto()) {
		return false;
	}
	holdMe=true;
	return true;
}
function clr_holdme() {
	holdMe=false;
	return true;
}
function file_upload() {
	ks_main.sub_main.document.forms[0].action='item_file_upload.cgi';
	ks_main.sub_main.document.forms[0].submit();
}
function text_attach() {
	ks_main.sub_main.document.forms[0].action='item_text_attach.cgi';
	ks_main.sub_main.document.forms[0].submit();
}
function finish_ord(){
	if ( ! Init ) {
		startup();
	}
	if (! takeWin() ) return;
	if ( unknownItems != '' ) {
		var url= CgiDir+'/item_details3.cgi?key='+Key+';cust_id='+Subs_cust;
		url += ';login='+login+';login_cust='+cust_id;
		url += ';pcat='+My_name+';ccat='+Hot_name;
		url += ';func=parent.parent.finish_ord2();items='+unknownItems;
		unknownItems = '';
		ks_main.sub_main.location.href=url;
	} else {
		finish_ord2();
	}
}
function finish_ord2() {
	orderInProgress = true;
	orderSubmitted = false;
	Page = "";

	var df = ks_main.sub_main;
	var d = df.document;
	if (typeof d.images['stock_status'] != "undefined") {
		d.images.stock_status.src = stock_check_img.src;
	}
	var which = reqfile ? Review : this;
	var chk_ship = ' onClick="return parent.parent.clr_holdme();"';
	if (Shipto_check) {
		chk_ship = ' onClick="parent.parent.clr_holdme();return parent.parent.check_shipto();"';
	}

	d.open();
	Page += '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r';
	Page += '<HTML><HEAD><TITLE>FinishOrder</TITLE>\r';
	Page += '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r';
	Page += '<LINK REL="stylesheet" TYPE="text/css" HREF="'+Style_sheet+'">\r';
	Page += '<STYLE TYPE="text/css"> .nowrap {white-space:nowrap;\} .bold{font-weight:bold;\}</STYLE>\r';
	Page += '</HEAD><BODY onLoad="parent.parent.header_finish();">\r';
	Page += '<DIV CLASS="title" STYLE="position:relative;top:0px;text-align:left;">'+Tags["osummary"]+'\r';
	Page += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\r';
	Page += '<SPAN ID="prtme"><A ID="prtme-icon" HREF="#" onMouseOver="status=&#039;&#039;;return true" onClick="window.print();return false;"><IMG SRC="'+DocDir+'/catalog/pic/print.gif" TITLE="Print" ALT="Print" BORDER=0><SPAN>Print</SPAN></A></SPAN></DIV>\r';
	Page += '<FORM METHOD="post" ';
	Page += 'onSubmit="return parent.parent.checkOrder()" ';
	Page += 'ACTION="'+which.FinishURL+'" TARGET="_self"> \r';
	show_header(false);
	Addr_displayed = true;

	Page += '<BR><HR ALIGN=LEFT SIZE=3 NOSHADE>\r';
	showItems(false);
	if ( ExtraField1 && !ExtraFieldAtTop) {
                if (typeof extra_field_1 == "undefined") {
			extra_field_1 = "";
		}
		Page += '<BR><BR><SPAN CLASS="'+Section_style+'">'+Tags["extra_field_1"]+':</SPAN>&nbsp;&nbsp;\r';
		if (ExtraField1Names.length > 0) {
			Page += '<SELECT CLASS="subheadertext" NAME="extraField1"><OPTION VALUE="">--Select--</OPTION>';
			displayExtraFields();
			Page += '</SELECT>';
		} else {
			Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="extraField1" SIZE="35" MAXLENGTH="30" VALUE="'+extra_field_1+'">';
		}
		if (ExtraField1Req) {
			Page += '<span class=alerttext>&nbsp;*</span>\r';
		}
	}

	if ( Do_special_instrs ) {
		if (typeof preFillSpecInst != "undefined") {
			Special_instrs = preFillSpecInst;
		}
		if (SpecInstSplit) {
			Page += '<BR><BR><SPAN CLASS="'+Section_style+'">'+Tags["specInst1"]+':</SPAN>\r';
			Page += '<BR><TEXTAREA CLASS="subheadertext" NAME="specInst1" COLS=50 ROWS=2>'+Special_instrs1+'</TEXTAREA>\r';
			Page += '<BR><SPAN CLASS="'+Section_style+'">'+Tags["specInst2"]+':</SPAN>\r';
			Page += '<BR><TEXTAREA CLASS="subheadertext" NAME="specInst2" COLS=50 ROWS=2>'+Special_instrs2+'</TEXTAREA>\r';
		} else {
			Page += '<BR><SPAN CLASS="'+Section_style+'">'+Tags["specInst"]+':</SPAN>\r';
			Page += '<BR><TEXTAREA CLASS="subheadertext" NAME="specInst" COLS=50 ROWS=2>'+Special_instrs+'</TEXTAREA>\r';
		}
	}
	if (Confirm_text) {
		Page += '<BR><SPAN CLASS="subheadertext">'+Confirm_text+'</SPAN>\r';
	}
	if (OrderHeaderAgreement) {
		var checked = '';
		if (orderAgreement) {
			checked = ' CHECKED';
		}
		Page += '<BR><BR><SPAN CLASS="subheadertext"><INPUT TYPE="checkbox" NAME="orderAgree" SIZE="1" ' + checked + ' onChange="parent.parent.orderAgreement=this.checked;document.forms[0].orderAgreement.value=this.checked;">&nbsp; By placing this order, I agree to the <A HREF="Javascript:parent.parent.openAgree();"><U>' + Tags["imprint_terms"] + '</U></A></SPAN>.';
	}
	if (Permit & 1 && !punchout_query) {
		switch (which.Card_button) {
			case 0: // always SEND
				Page += '<BR><BR><INPUT TYPE="submit" CLASS="pull-down" NAME="acceptbut" VALUE="'+Tags["send"]+'" '+chk_ship+'>\r';
				break;
			case 1: // choice
				if ( totalChargeable == 0 && ! Feign_billable && ! which.Show_freight && ! which.Show_tax) {
					Page += '<BR><BR><INPUT TYPE="submit" CLASS="pull-down"  NAME="acceptbut" VALUE="'+Tags["send"]+'" '+chk_ship+'>\r';
				} else {
					Page += '<BR><BR><INPUT TYPE="submit" CLASS="pull-down"  NAME="acceptbut" VALUE="'+Tags["sendOnAcct"]+'" onClick="return parent.parent.which_button(this.form, 0)">\r';
					Page += '<BR><BR><INPUT TYPE="submit" CLASS="pull-down"  NAME="chargebut" VALUE="'+Tags["sendChargeCD"] + '" onClick="return parent.parent.which_button(this.form, 1)">\r';
				}
				break;
			case 2: // always CHARGE
				var b_label = "CHARGE CARD";
				if (! Auth_charge) {
					if (totalChargeable == 0 && ! Feign_billable && ! which.Show_freight && ! which.Show_tax) {
						b_label = Tags["send"];
					}
				} else {
					if (totalChargeable == 0 && ! which.Show_freight && ! which.Show_tax) {
						b_label = Tags["send"];
					}
				}
				Page += '<BR><BR><INPUT TYPE="submit" ID="acceptbut" CLASS="pull-down" NAME="acceptbut" VALUE="'+b_label+'"'+chk_ship+'>\r';
				break;
		}
		if ( moneyOrder ) {
			Page += '<INPUT TYPE="hidden" NAME="orderMethod" VALUE="">\r';
			Page += '&nbsp;<INPUT TYPE="submit" CLASS="pull-down"  NAME="acceptbut" VALUE="Place Order-Money Order" onClick="return parent.parent.which_button(this.form, 3)">\r';
		}
		if ( Hold_button ) {
		 Page += '&nbsp;<INPUT TYPE="submit" CLASS="pull-down"  NAME="acceptbut" VALUE="' + Tags["hold"] + '" onClick="return parent.parent.holdme()">\r';
		}
		Page += '&nbsp;<INPUT TYPE="button" CLASS="pull-down"  NAME="cancelbut" VALUE="' + Tags["abandon"] + '" onClick="parent.parent.clr_holdme;parent.parent.newOrder()">\r';
	}
	hide_imprint_info();
	if (Checkout_style==1) {
		Page += '<BR><BR>';
	}
	Page += '</FORM>\r';
	Page += '<IFRAME HEIGHT=1 NAME="talk_to" STYLE="visibility:hidden;" SRC="/catalog/closet.html"></IFRAME>\r';
	if (which.Auto_stock_check) {
		Page += '<SCRIPT TYPE="text/javascript">parent.parent.checkStock();</SCRIPT>\r';
	}
	Page += '</BODY></HTML>';
	if (punchout_query) {
		var newPage;
		var lines = Page.split('<INPUT');
		for (j = 0; j < lines.length; j++) {
			if (lines[j].search(/hidden/i) != -1) {
				var sublines = lines[j].split('>');
				newPage += '<INPUT ' + sublines[0] + '>\r';
			}
		}
		if (!punchback_url) {
			punchback_url = CgiDir+'/punchout_finish.cgi';
		}
		Page = '<BODY ONLOAD="Javascript:document.punchout.submit();"><FONT COLOR="white">\r';
		Page += '<FORM METHOD="POST" NAME="punchout" ENCTYPE="multipart/form-data" ACTION="'+punchback_url+'">\r';
		Page += newPage;
		Page += '</FORM>\r';
	}
	d.writeln(Page);
	d.close();
	d.title = "FinishOrder"; // FF1.5 hack
	total_breakdown(which);
	fetch_timestamp();
	if ( orderLimit && parseFloat(totalSell, 10) > orderLimit ) {
		overLimit = 1;
		alert("The total amount of this order exceeds the order limit of \$"+orderLimit+"\. The order will be placed on hold.");
	}
	else {
		overLimit = 0;
	}
	return
}
function fetch_timestamp() {
	if (! reqfile) {

		var need_call = timeStamp < 1 ? true : false;
		if (! need_call && Auto_req_no) {
			if (typeof ks_main.sub_main.document.forms[0] != "undefined") {
				if (ks_main.sub_main.document.forms[0].reqNo.value.length == 0) {
					need_call = true;
				}
			} else if (reqNo.length == 0) {
				need_call = true;
			}
		}
		if (need_call) {
			var timestamp_only = 1;
			if ( Auto_req_no ) {
				if (! reqNo) {
					timestamp_only = "";
				}
			} else {
				reqNo = '';
			}
			timeStamp = -1;
			reqNo_busy = true;
			getNextReqNo(timestamp_only);
			Rq_timer_tries = 0;
			At_startup = false;
			setTimeout("test_reqno()",100);
		}
	}
}

function manualCC() {
	parent.parent.putByCCsel = false;
}

function show_header(isNewOrder) {
	var j, d = ks_main.sub_main.document;
	var which = reqfile ? Review : this;
	var hdrtxt_style;
	if (isNewOrder) {
		Page = "";
		Page += '<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">\r';
		Page += '<HTML><HEAD><TITLE>FinishOrder</TITLE>\r';
		Page += '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">\r';
		Page += '<LINK REL="stylesheet" TYPE="text/css" HREF="'+Style_sheet+'">\r';
		Page += '<STYLE TYPE="text/css">body {background:no-repeat fixed white;\} .nowrap {white-space:nowrap;\} .bold{font-weight:bold;\}</STYLE>\r';
		Page += '</HEAD><BODY onLoad="parent.parent.header_finish();">\r';
		Page += '<DIV CLASS="title">'+Tags["oheader"]+'</DIV>\r';
		Page += '<FORM METHOD="post" NAME="header">\r';
		Page += '<INPUT TYPE="button" VALUE="Defaults" onClick="parent.parent.init(false,parent.parent.Multi,true); parent.parent.show_header(true)">\r';
	}
	Page += '<INPUT TYPE="hidden" NAME="key" VALUE="'+Key+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="sec_level" VALUE="'+Sec_level+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="permit" VALUE="'+Permit+'">\r';
	if (approver_login) {
		Page += '<INPUT TYPE="hidden" NAME="approver_login" VALUE="'+approver_login+ '">\r';
	}
	Page += '<INPUT TYPE="hidden" NAME="login" VALUE="'+login+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="cust_id" VALUE="'+cust_id+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="fullName" VALUE="'+fullName+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="userEmail" VALUE="'+userEmail+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="custEmailContact" VALUE="'+custEmailContact+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="distEmailContact" VALUE="'+distEmailContact+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="reqfile" VALUE="'+reqfile+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="shipVia" VALUE="'+shipVia+ '">\r';
	Page += '<INPUT TYPE="hidden" NAME="billTo" VALUE="'+ billTo + '">\r';
	Page += '<INPUT TYPE="hidden" NAME="overLimit" VALUE="'+ overLimit +'">\r';
	Page += '<INPUT TYPE="hidden" NAME="holdMe" VALUE="false">\r';
	Page += '<INPUT TYPE="hidden" NAME="c_opts" VALUE="'+Options+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="c_opts2" VALUE="'+Options2+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="shipFcode" VALUE="'+shipFcode+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="shipType" VALUE="'+shipType+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="fr_s_direct" VALUE="2">\r';
	Page += '<INPUT TYPE="hidden" NAME="timeStamp" VALUE='+timeStamp+'>\r';
	Page += '<INPUT TYPE="hidden" NAME="sub" VALUE="'+cust_id+'">\r';
	Page += '<INPUT TYPE="hidden" NAME="orderAgreement" VALUE="'+orderAgreement+'">\r';
	if (cost_ctr_split || ! which.ShowCC) {
		if (typeof custCC == "undefined") {
			custCC = "";
		}
		Page += '<INPUT TYPE="hidden" NAME="custCC" VALUE="'+custCC+'">';
	}
	if ( isNewOrder || ! which.Show_freight) {
		Page += '<INPUT TYPE="hidden" NAME="billFreight" VALUE="'+ billFreight +'">\r';
	}
	if (isNewOrder || ! which.Show_tax) {
		Page += '<INPUT TYPE="hidden" NAME="tax" VALUE="'+ tax +'">\r';
	}
	Page += '<DIV ID="tht">\r';
	Page += '<DIV CLASS="maintext">Required fields are marked with an asterisk'+asterisk+'</DIV><BR>\r';
	if (Order_header_text) {
		hdrtxt_style = Checkout_style ? "maintext" : "subheadertext";
		Page += '<DIV CLASS="'+hdrtxt_style+'">'+Order_header_text+'</DIV>\r';
	}
	if (Checkout_style == 1) {
		Page += '<TABLE WIDTH="550" SUMMARY="for layout"><TR>\r';
        if (ExtraFieldAtTop) {
            topage_extra_field(which);
            Page += '</TR><TR>\r';
        }
		topage_date(which);
		Page += '</TR><TR>\r';
		topage_reqno(which);
		Page += '</TR><TR>\r';
		topage_cost_ctr(which);
		Page += '</TR><TR>\r';
		topage_phone(which);
		Page += '</TR><TR>\r';
		topage_email(which);
		topage_ship_addr(which,isNewOrder);
		topage_ship_ack_email(which);
		topage_ship_via(which);
		topage_bill_addr(which);
		topage_deliv_instr(which);
		Page += '</TD></TR></TABLE></DIV>\r';
	} else {
		Page += '<TABLE WIDTH="450" SUMMARY="for layout"><TR>\r';
        if (ExtraFieldAtTop) {
		    topage_extra_field(which);
        }
		topage_reqno(which);
		topage_date(which);
		Page += '</TR><TR>\r';
		topage_cost_ctr(which);
		topage_phone(which);
		topage_ship_addr(which,isNewOrder);
		topage_ship_ack_email(which);
		topage_ship_via(which);
		topage_bill_addr(which);
		Page += '</TABLE></DIV><TABLE SUMMARY="for layout">\r';
		topage_deliv_instr(which);
		topage_email(which);
		Page += '</TD></TR></TABLE>\r';
	}

	if (isNewOrder) {
		Page += '</FORM>\r';
		Page += '</BODY></HTML>\r';
		d.open();
		d.writeln(Page);
		d.close() ;
		d.title = "FinishOrder"; // FF1.5 hack
		fetch_timestamp();
	}
}

function topage_extra_field(which) {
    if ( ExtraField1 ) {
        if (typeof extra_field_1 == "undefined") {
			extra_field_1 = "";
		}
	    Page += '<TD CLASS="tag nowrap">'+Tags["extra_field_1"]+'&nbsp;</TD>\r';
		if (ExtraField1Names.length > 0) {
			Page += '<TD CLASS="maintext nowrap"><SELECT CLASS="subheadertext" NAME="extraField1"><OPTION VALUE="">--Select--</OPTION>';
			displayExtraFields();
			Page += '</SELECT>';
		} else {
			Page += '<TD CLASS="maintext nowrap">\r';
            Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="extraField1" SIZE="35" MAXLENGTH="30" VALUE="'+extra_field_1+'">';
		}
		if (ExtraField1Req) {
			Page += '<span class=alerttext>&nbsp;*</span>\r';
		}
	}
}

function topage_date(which) {
	Page += '<TD CLASS="tag nowrap">'+Tags["date"]+'&nbsp;</TD>\r';
	if ( Fixed_date ) {
		Page += '<TD CLASS="maintext nowrap"><INPUT TYPE="hidden" NAME="dateOrdered" VALUE="'+dateOrdered+'">'+dateOrdered+'\r';
	} else {
		Page += '<TD CLASS="nowrap"><INPUT CLASS="subheadertext" TYPE="text" NAME="dateOrdered" SIZE=10 VALUE="'+dateOrdered+'">'+asterisk+'\r';
	}
}
function topage_reqno(which) {
	if (typeof PageDNA_reqNo != "undefined" && PageDNA_reqNo != "") {
		reqNo = PageDNA_reqNo;
	}
	Page += '<TD CLASS="tag nowrap">'+Tags["order"]+'&nbsp;</TD>\r';
	if (Auto_req_no) {
		Page += '<TD CLASS="subheadertext"><INPUT TYPE="hidden" NAME="reqNo" VALUE="'+reqNo+'"><SPAN id="reqNo_">'+reqNo+'</SPAN>\r';
	} else {
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="reqNo" SIZE=35 MAXLENGTH=16 VALUE="'+reqNo+'" onChange="parent.parent.fix_reqNo();">'+asterisk+'\r';
	}
}
function topage_cost_ctr(which) {
	if (Cost_ctr_text) {
		var cctxt_style = Checkout_style ? "maintext" : "subheadertext";
		Page += '<TD></TD><TD><DIV CLASS="'+cctxt_style+'">'+Cost_ctr_text+'</DIV></TD></TR><TR>\r';
	}
	if (which.ShowCC) {
		if (which.ShowCCpop) {
			Page += '<TD CLASS="tag nowrap">'+Tags["cc"]+'&nbsp;\r';
			Page += '<INPUT TYPE="hidden" NAME="custCC" VALUE="'+custCC+'"></TD>\r';
			Page += '<TD CLASS="nowrap"><SELECT CLASS="pull-down nowrap" NAME="custCCSel" onChange="parent.parent.set_cost_center(this.form)">\r';
			displayCC();
			Page += '</SELECT>';
			if (which.RequireCC && ! CcBlur) {
				Page += asterisk;
			}
		} else if (cost_ctr_split) {
			CCformat = set_multi_ref(which.Multi,which.CCformat_, which.Other_CCformat);
			var j, k, name, qty, title;
			Page += '<TD CLASS="tag nowrap">'+Tags["cc"]+'&nbsp;</TD>\r';
			Page += '<TD>'+CCformat.prefix+'<INPUT TYPE="hidden" NAME="fields_splitCC" VALUE="'+CCformat.fields+'"><INPUT TYPE="hidden" NAME="prefix_splitCC" VALUE="'+CCformat.prefix+'">';
			for (j = 0; j < CCformat.fields; j++) {
				if (typeof splitCC[j] == "undefined") {
					splitCC[j] = "";
				}
				k = CCformat[j];
				name = "splitCC"+j;
				qty = k.size_min == k.size_max ? k.size_max : k.size_min+"-"+k.size_max;
				title = qty+" "+k.warning+" in this field.";
				Page += '<INPUT TYPE="hidden" NAME="trailer_'+name+'" VALUE="'+k.trailer+'">';
				Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="'+name+'" VALUE="'+splitCC[j]+'" SIZE='+k.size_max+' MAXLENGTH='+k.size_max+' onBlur="parent.parent.check_splitCC(this,'+j+',false)" TITLE="'+title+'" '+CcBlur+'>&nbsp;'+k.trailer+'&nbsp;';
			}
			if (which.RequireCC && ! CcBlur) {
				Page += asterisk;
			}
			Page += '<INPUT TYPE="hidden" NAME="custCC" VALUE="'+custCC+'"></TD>\r';
		} else if (! DisableCostCtrIfNone || which.RequireCC) {
			Page += '<TD CLASS="tag nowrap">'+Tags["cc"]+'&nbsp;</TD>\r';
			Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="custCC" VALUE="'+custCC+'" SIZE=35 MAXLENGTH=16 onChange="parent.parent.manualCC();"'+CcBlur+'>';
			if (which.RequireCC && ! CcBlur) {
				Page += asterisk;
			}
		}
	}
}
function topage_phone(which) {
	Page += '<TD CLASS="tag">'+Tags["phone"]+'&nbsp;</TD>\r';
	Page += '<TD COLSPAN=3 CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="phone" SIZE="25" MAXLENGTH="18" VALUE="'+phone+'"';
	if (Tags["phone"].search(/phone/i) != -1) {
		Page += ' onChange="parent.parent.Phone_checked=parent.parent.checkUSPhone(this,!parent.parent.RequirePhone)"';
	}
	Page += '>';
	if (RequirePhone && ! Phone_checked ) {
		Page += asterisk;
	}
	Page += '</TD>';
}
function topage_email(which) {
	if (which.Ack_email_box) {
		if (Checkout_style) {
			Page += '<TD CLASS="tag">'+Tags["ack_email"]+'&nbsp;</TD><TD CLASS="nowrap">\r';
		} else {
			Page += '<TD CLASS="section nowrap">'+Tags["ack_email"]+'<BR>\r';
		}
		Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="ack_email" SIZE="35" MAXLENGTH="80" VALUE="'+which.Ack_email+'">';
		if (which.RequireEmail) {
			Page += asterisk;
		}
	}
}
function topage_ship_addr(which,is_new_order) {
//	Page += '</TD></TR>\r';
	Page += '<TR><TD COLSPAN=3 VALIGN=bottom CLASS="'+Section_style+'" HEIGHT=23>Shipping Address:\r';

	// SHIPTO
	Page += '</TD></TR><TR><TD CLASS="nowrap">\r';
	if (! reqfile) {
		if (which.Ship_to_show != 'no' || which.Multi ) {
			if (which.ShiptoPop == 1) {
				Page += '<INPUT TYPE="hidden" NAME="custShipto" VALUE="'+custShipto+'">\r';
				Page += '<TR><TD CLASS="tag nowrap">'+Tags["shipto"]+'&nbsp;\r';
				if (! OneShipto){
					Page += '<TD COLSPAN=5><SELECT CLASS="pull-down" NAME="custShiptoSel" onChange="parent.parent.setAddress(this);">\r';
					Page += '<OPTION  VALUE="" '
					if ( custShipto == "" ) {
						Page += "SELECTED";
					}
					var an = "a";
				 	if (Tags["cc"].match(/^[aeiou]/i)) {
						an = "an";
					}
					Page += '>-- Select '+an+' '+ Tags["shipto"] + ' --</OPTION>';
				} else {
					Page += '<TD COLSPAN=5><SELECT CLASS="pull-down-sm" NAME="custShiptoSel">';
				}
				displayShipto();
				Page += '</SELECT>';
				if (which.RequireShipto) {
					Page += asterisk;
				}
				Page += '<TD><TD>\r';
			} else {
				Page += '<TR><TD CLASS="tag nowrap">'+Tags["shipto"]+'&nbsp;\r';
				Page += '<TD CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="custShipto" VALUE="'+custShipto+'" SIZE=21 MAXLENGTH=20'+BranchBlur+'>';
				if (which.RequireShipto && ! BranchBlur) {
					Page += asterisk;
				}
				if ( !BranchBlur && (ShiptoPop == -1 || which.Cust_ship_to_meth == 'window')) {
					Page += '<INPUT TYPE="button" VALUE="'+Tags["shiptolookup"]+'" CLASS="pull-down-sm" onClick="parent.parent.chooseShipto(true)">';
				}

				if ((ShiptoCnt || which.Multi || which.ShiptoPop == -1 || which.Cust_ship_to_meth == 'window') && No_shipto_lookup_link == false) {
					Page += '<TD COLSPAN=2>';
					Page += '<INPUT TYPE="button" CLASS="pull-down-sm" onClick="return parent.parent.chooseShipto()" VALUE="Select '+Tags["shipto"]+'">\r';
				}
			}
		}
	} else if (Review.Ship_to_show) {
		Page += '<TR><TD CLASS="tag nowrap">'+Tags["shipto"]+'&nbsp;\r';
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="custShipto" VALUE="'+custShipto+ '" SIZE=21 MAXLENGTH=20'+BranchBlur+'>';
		if (which.RequireShipto && ! BranchBlur) {
			Page += asterisk;
		}
		Page += '<INPUT TYPE="button" VALUE="'+Tags["shiptolookup"]+'" CLASS="pull-down-sm" onClick="parent.parent.chooseShipto(true)">';
		if (! No_shipto_lookup_link) {
			Page += '<TD COLSPAN=2 CLASS="nowrap"><INPUT TYPE="button" CLASS="pull-down-sm" onClick="return parent.parent.chooseShipto()" VALUE="Select '+Tags["shipto"]+'">\r';
		}
	}

	// ADDRESS
	Page += '<TR><TD CLASS="tag nowrap">'+Tags["company"]+'&nbsp;\r';
	Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="custName" SIZE="35" MAXLENGTH="30" VALUE="'+custName+'"'+CompanyBlur+'>';
	if (which.RequireCompany && ! CompanyBlur) {
		Page += asterisk;
	}
	Page += '<TR><TD CLASS="tag nowrap">'+Tags["address1"]+'&nbsp;\r';
	Page += '<TD CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="shipAddr1" SIZE="35" MAXLENGTH="30" VALUE="'+shipAddr1+'"'+AttnBlur+'>';
	if (which.RequireAttn && ! AttnBlur) {
		Page += asterisk;
	}
	Page += '<TR><TD CLASS="tag nowrap">'+Tags["address2"]+'&nbsp;\r';
	Page += '<TD CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="shipAddr2" SIZE="35" MAXLENGTH="30" VALUE="'+shipAddr2+'"'+AddrBlur+'>';
	if (! AddrBlur && !dontRequireAddress) {
		Page += asterisk;
	}

	Page += '<TR><TD CLASS="tag nowrap">'+Tags["address3"]+'&nbsp;\r';
	Page += '<TD CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="shipAddr3" SIZE="35" MAXLENGTH="30" VALUE="'+shipAddr3+'"'+AddrBlur+'>';
	Page += '</TD>\r';
	if (! Checkout_style && State_lookup) {
		Page += '<TD COLSPAN=4>&nbsp;';
		topage_state_sel();
	}
	Page += '<TR><TD CLASS="tag nowrap">'+Tags["city"]+'&nbsp;\r';
	Page += '<TD CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="shipCity" SIZE="35" MAXLENGTH="16" VALUE="'+shipCity+'"'+AddrBlur+'>';
	if (! AddrBlur && !dontRequireAddress) {
		Page += asterisk;
	}
	if (Checkout_style) {
		Page += '</TR><TR>\r';
	}
	Page += '<TD CLASS="tag nowrap">'+Tags["state"]+'&nbsp;</TD><TD CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="shipState" SIZE="3" MAXLENGTH="3" VALUE="'+shipState+'"'+AddrBlur;
	if (! is_new_order) {
		Page += StateChange;
	}
	Page += '>';
	if (! AddrBlur && !dontRequireAddress && !CountryDropDown) {
		Page += asterisk;
	} else if (CountryDropDown) {
		Page += '<SPAN CLASS="subtext">(Not required for international orders)</SPAN>';
	}
	if (Checkout_style && State_lookup) {
		Page += '&nbsp;';
		topage_state_sel();
	}
	if (Checkout_style) {
		Page += '</TR><TR>\r';
	}
	Page += '<TD CLASS="tag">'+Tags["zip"]+'&nbsp;</TD><TD CLASS="nowrap"><INPUT TYPE="text" CLASS="subheadertext" NAME="shipZip" SIZE="12" MAXLENGTH="10" VALUE="'+shipZip+'"'+AddrBlur;
	if ( ! is_new_order && Interactive_freight) {
		Page += StateChange;
	}
	Page += '>';
	if (! AddrBlur && !dontRequireAddress && !CountryDropDown) {
		Page += asterisk;
	}
	if (show_country) {
		Page += '</TR><TR><TD CLASS="tag">'+Tags["country"]+'&nbsp;</TD><TD CLASS="nowrap">';

		var doShipCountrySelect;
		if (typeof CountryNames != "undefined") {
			if (CountryDropDown && CountryNames.length > 0) {
				doShipCountrySelect = 1;
				Page += '<SELECT id="countrySelect"';
				if ( ! is_new_order && Interactive_freight) {
					Page += ' onChange="parent.parent.show_charges();" ';
				}
				Page += ' CLASS="subheadertext" NAME="shipCountry"><OPTION VALUE="">--Select--</OPTION>';
				displayCountryDropDown();
				Page += '</SELECT>'+asterisk+'\r';
			}
		}
		if (!doShipCountrySelect) {
			Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="shipCountry" SIZE="25"';
			Page += ' MAXLENGTH="25" VALUE="'+shipCountry+'"'+AddrBlur+'>';
		}
	}
	if (EnableShipType) {
		Page += '</TR><TR><TD CLASS="tag" COLSPAN="6" STYLE="text-align:left">Please indicate the correct address type to insure proper delivery of your order.</TD></TR>';
		Page += '</TR><TR><TD CLASS="tag">'+Tags["shipType"]+'&nbsp;</TD><TD CLASS="nowrap">';
		Page += '<SELECT id="shipTypeSelect"';
		Page += ' onChange="parent.parent.shipType=this.options[this.selectedIndex].value;document.forms[0].shipType.value=this.options[this.selectedIndex].value;';
		if ( ! is_new_order && Interactive_freight) {
			Page += 'parent.parent.show_charges();';
		}
		Page += '" CLASS="subheadertext" NAME="shipTypeSel"><OPTION VALUE="">--Select--</OPTION>';
		Page += '<OPTION VALUE="R" ';
		if (shipType == 'R') {
			Page += 'SELECTED';
		}
		Page += '>Residential</OPTION><OPTION VALUE="C" ';
		if (shipType == 'C') {
			Page += 'SELECTED';
		}
		Page += '>Commercial</OPTION><OPTION VALUE="F" ';
		if (shipType == 'F') {
			Page += 'SELECTED';
		}
		Page += '>International</OPTION></SELECT>'+asterisk+'\r';
	}
}
function topage_state_sel() {
	Page += '<SELECT CLASS="pull-down" NAME="state_ref" onChange="parent.parent.setState(this.selectedIndex)">\r';
	Page += '<OPTION VALUE="">&nbsp;&nbsp;&nbsp;----- Select a State -----</OPTION>\r';
	Page += '<OPTION VALUE="AL">Alabama</OPTION>\r';
	Page += '<OPTION VALUE="AK">Alaska</OPTION>\r';
	Page += '<OPTION VALUE="AB">Alberta</OPTION>\r';
	Page += '<OPTION VALUE="AS">American Samoa</OPTION>\r';
	Page += '<OPTION VALUE="AZ">Arizona</OPTION>\r';
	Page += '<OPTION VALUE="AR">Arkansas</OPTION>\r';
	Page += '<OPTION VALUE="BC">British Columbia</OPTION>\r';
	Page += '<OPTION VALUE="CA">California</OPTION>\r';
	Page += '<OPTION VALUE="CO">Colorado</OPTION>\r';
	Page += '<OPTION VALUE="CT">Connecticut</OPTION>\r';
	Page += '<OPTION VALUE="DE">Delaware</OPTION>\r';
	Page += '<OPTION VALUE="DC">District of Columbia</OPTION>\r';
	Page += '<OPTION VALUE="FM">Federated States Micronesia</OPTION>\r';
	Page += '<OPTION VALUE="FL">Florida</OPTION>\r';
	Page += '<OPTION VALUE="GA">Georgia</OPTION>\r';
	Page += '<OPTION VALUE="GU">Guam</OPTION>\r';
	Page += '<OPTION VALUE="HI">Hawaii</OPTION>\r';
	Page += '<OPTION VALUE="ID">Idaho</OPTION>\r';
	Page += '<OPTION VALUE="IL">Illinois</OPTION>\r';
	Page += '<OPTION VALUE="IN">Indiana</OPTION>\r';
	Page += '<OPTION VALUE="IA">Iowa</OPTION>\r';
	Page += '<OPTION VALUE="KS">Kansas</OPTION>\r';
	Page += '<OPTION VALUE="KY">Kentucky</OPTION>\r';
	Page += '<OPTION VALUE="NL">Labrador and Newfoundland</OPTION>\r';
	Page += '<OPTION VALUE="LA">Louisiana</OPTION>\r';
	Page += '<OPTION VALUE="ME">Maine</OPTION>\r';
	Page += '<OPTION VALUE="MB">Manitoba</OPTION>\r';
	Page += '<OPTION VALUE="MH">Marshall Islands</OPTION>\r';
	Page += '<OPTION VALUE="MD">Maryland</OPTION>\r';
	Page += '<OPTION VALUE="MA">Massachusetts</OPTION>\r';
	Page += '<OPTION VALUE="MI">Michigan</OPTION>\r';
	Page += '<OPTION VALUE="MN">Minnesota</OPTION>\r';
	Page += '<OPTION VALUE="MS">Mississippi</OPTION>\r';
	Page += '<OPTION VALUE="MO">Missouri</OPTION>\r';
	Page += '<OPTION VALUE="MT">Montana</OPTION>\r';
	Page += '<OPTION VALUE="NE">Nebraska</OPTION>\r';
	Page += '<OPTION VALUE="NV">Nevada</OPTION>\r';
	Page += '<OPTION VALUE="NB">New Brunswick</OPTION>\r';
	Page += '<OPTION VALUE="NH">New Hampshire</OPTION>\r';
	Page += '<OPTION VALUE="NJ">New Jersey</OPTION>\r';
	Page += '<OPTION VALUE="NM">New Mexico</OPTION>\r';
	Page += '<OPTION VALUE="NY">New York</OPTION>\r';
	Page += '<OPTION VALUE="NL">Newfoundland and Labrador</OPTION>\r';
	Page += '<OPTION VALUE="NC">North Carolina</OPTION>\r';
	Page += '<OPTION VALUE="ND">North Dakota</OPTION>\r';
	Page += '<OPTION VALUE="MP">Northern Mariana Islands</OPTION>\r';
	Page += '<OPTION VALUE="NT">Northwest Territories</OPTION>\r';
	Page += '<OPTION VALUE="NS">Nova Scotia</OPTION>\r';
	Page += '<OPTION VALUE="NU">Nunavut</OPTION>\r';
	Page += '<OPTION VALUE="OH">Ohio</OPTION>\r';
	Page += '<OPTION VALUE="OK">Oklahoma</OPTION>\r';
	Page += '<OPTION VALUE="ON">Ontario</OPTION>\r';
	Page += '<OPTION VALUE="OR">Oregon</OPTION>\r';
	Page += '<OPTION VALUE="PW">Palau</OPTION>\r';
	Page += '<OPTION VALUE="PA">Pennsylvania</OPTION>\r';
	Page += '<OPTION VALUE="PE">Prince Edward Island</OPTION>\r';
	Page += '<OPTION VALUE="PR">Puerto Rico</OPTION>\r';
	Page += '<OPTION VALUE="QC">Quebec</OPTION>\r';
	Page += '<OPTION VALUE="RI">Rhode Island</OPTION>\r';
	Page += '<OPTION VALUE="SK">Saskatchewan</OPTION>\r';
	Page += '<OPTION VALUE="SC">South Carolina</OPTION>\r';
	Page += '<OPTION VALUE="SD">South Dakota</OPTION>\r';
	Page += '<OPTION VALUE="TN">Tennessee</OPTION>\r';
	Page += '<OPTION VALUE="TX">Texas</OPTION>\r';
	Page += '<OPTION VALUE="UT">Utah</OPTION>\r';
	Page += '<OPTION VALUE="VT">Vermont</OPTION>\r';
	Page += '<OPTION VALUE="VI">Virgin Islands</OPTION>\r';
	Page += '<OPTION VALUE="VA">Virginia</OPTION>\r';
	Page += '<OPTION VALUE="WA">Washington</OPTION>\r';
	Page += '<OPTION VALUE="WV">West Virginia</OPTION>\r';
	Page += '<OPTION VALUE="WI">Wisconsin</OPTION>\r';
	Page += '<OPTION VALUE="WY">Wyoming</OPTION>\r';
	Page += '<OPTION VALUE="YT">Yukon</OPTION>\r';
	Page += '</SELECT>\r';
}
function topage_ship_via(which) {
	Page += '<TR><TD CLASS="tag nowrap">'+Tags["shipVia"]+'&nbsp;\r';
	Page += '<TD><SELECT CLASS="pull-down" NAME="shipViaSel" onChange="parent.parent.set_FRC(this.selectedIndex);parent.parent.show_charges()">\r';
	if (! which.Show_freight && ! which.No_blank_via) {
		Page += '<OPTION VALUE=""></OPTION>\r';
	}

	var j, viarr = new Array();
	var ref = set_multi_ref(which.Multi,which.Vias,which.Other_Vias);
	for ( j = 0; j < ref.length; j++ ) {
		viarr = ref[j].split("\t");
		Page += '<OPTION VALUE="'+viarr[0]+'"';
		if (shipVia == viarr[0]) {
			Page += ' SELECTED';
		}
		Page += '>'+viarr[1]+'</OPTION>\r';
	}

	Page += '</SELECT>\r';
}
function topage_ship_ack_email(which) {
	if (shippingAckEmail) {
		Page += '<TR><TD CLASS="tag nowrap">Shipping Confirmation Email&nbsp;\r';
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="shipAckEmail" SIZE="35" MAXLENGTH="100" VALUE="'+shipAckEmail+'">\r';
	}
}
function topage_bill_addr(which) {
	if (Do_bill_to) {
		Page += '<TR><TD COLSPAN=2 CLASS="'+Section_style+'" nowrap">Billing Address:\r';
		Page += '<TR><TD>\r';
		Page += '<TR><TD CLASS="tag nowrap">'+Tags["company"]+'&nbsp;\r';
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="btcustName" SIZE="35" MAXLENGTH="30" VALUE="'+btcustName+'">\r';
		Page += '<TR><TD CLASS="tag nowrap">'+Tags["address1"]+'&nbsp;\r';
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="btshipAddr1" SIZE="35" MAXLENGTH="30" VALUE="'+btshipAddr1+'">' + asterisk + '\r';
		Page += '<TR><TD CLASS="tag nowrap">'+Tags["address2"]+'&nbsp;\r';
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="btshipAddr2" SIZE="35" MAXLENGTH="30" VALUE="'+btshipAddr2+'">' + asterisk + '\r';
		Page += '<TR><TD CLASS="tag nowrap">'+Tags["address3"]+'&nbsp;\r';
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="btshipAddr3" SIZE="35" MAXLENGTH="30" VALUE="'+btshipAddr3+'">\r';
		Page += '<TR><TD CLASS="tag nowrap">'+Tags["city"]+'&nbsp;\r';
		Page += '<TD><INPUT TYPE="text" CLASS="subheadertext" NAME="btshipCity" SIZE="35" MAXLENGTH="16" VALUE="'+btshipCity+'"><span class=alerttext>&nbsp;*</span>\r';
		if (Checkout_style) {
			Page += '</TD></TR><TR>\r';
		}
		Page += '<TD CLASS="tag">'+Tags["state"]+'\r';
		if (Checkout_style) {
			Page += '</TD><TD>\r';
		}

		Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="btshipState" SIZE="3" MAXLENGTH="3" VALUE="'+btshipState+ '"><span class=alerttext>&nbsp;*</span>\r';
		if (Checkout_style) {
			Page += '</TD></TR><TR>\r';
		}
		Page += '<TD CLASS="tag">'+Tags["zip"]+'\r';
		if (Checkout_style) {
			Page += '</TD><TD>\r';
		}
		Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="btshipZip" SIZE="12" MAXLENGTH="10" VALUE="'+btshipZip+ '"><span class=alerttext>&nbsp;*</span>\r';
	}
}
function topage_deliv_instr(which) {
	Page += '<TR>\r';
	if (Checkout_style) {
		Page += '<TD CLASS="tag">'+Tags["deliveryInst"]+'&nbsp;</TD><TD CLASS="nowrap">\r';
	} else {
		Page += '<TD CLASS="section nowrap">'+Tags["deliveryInst"]+'<BR>\r';
	}
	if (delivery_menu) {
		Page += '<SELECT CLASS="subheadertext" NAME="deliveryInst"><OPTION VALUE="">--Select--</OPTION>';
		displayDeliveryMenu();
		Page += '</SELECT>';
	} else {
		Page += '<INPUT TYPE="text" CLASS="subheadertext" NAME="deliveryInst" SIZE="35" MAXLENGTH="30" VALUE="'+deliveryInst+'"'+DlvinstBlur+'>';
	}
	if (which.RequireDeliv) {
		Page += '<span class="alerttext">&nbsp;*</span>\r';
	}
}

function check_splitCC(f,idx,no_blank) {
	var val = f.value.replace(/ /g,"").toUpperCase();
	f.value = val;
	var k = CCformat[idx];
	if (k.pattern && (val || no_blank)) {
		var re = new RegExp("^"+k.pattern+"$");
		if (val.search(re) != 0) {
			var qty = k.size_min == k.size_max ? k.size_max : k.size_min+"-"+k.size_max;
			alert("Please enter "+qty+" "+k.warning+" in this field.");
			f.focus();
			return false;
		}
		splitCC[idx] = val;
	}
	return true;
}

function mk_cost_ctr(f) {
	var k, field, qty, cc_buf = CCformat.prefix;
	for (var j = 0; j < CCformat.fields; j++) {
		field = f["splitCC"+j];
		if (! check_splitCC(field, j, true)) {
			return false;
		}
		k = CCformat[j];
		cc_buf += field.value + k.trailer;
	}
	f.custCC.value = cc_buf;
	return true;
}

function header_finish() {
	if ( orderSubmitted == true && needNewOrder == true ) {
		return;
	}
	var which = reqfile ? Review : this;
	var d=ks_main.sub_main.document;
	if ( d.title == "" ) {
		return;
	}
	if (typeof d.forms == "undefined") {
	}
	var f = d.forms[0];
	if (shipVia == '') {
		var j, viarr = new Array();
		var ref = set_multi_ref(which.Multi,which.Vias,which.Other_Vias);
		if (ref.length > 0) {
			viarr = ref[0].split("\t");
			shipVia = viarr[0];
		}
	}
	if (shipVia != '') {
		selectOption(f.shipViaSel, shipVia);
		var index = f.shipViaSel.selectedIndex;
		if (index != -1) {
			f.shipVia.value = f.shipViaSel.options[index].value;
			set_FRC(index);
			show_charges();
		}
	}

	if (which.ShiptoPop == 1) {
		if (custShipto != '') {
			selectOption(f.custShiptoSel, custShipto);
			if (! Addr_displayed) {
				setAddress(f.custShiptoSel);
				Addr_displayed = true;
			}
		} else {
			f.custShiptoSel.selectedIndex = 0;
			setAddress(f.custShiptoSel);
			Addr_displayed = true;
		}
	}
	if (which.ShowCCpop) {
		selectOption(f.custCCSel, custCC);
	}
	if ( setHdrFocus ) {
		if ( which.ShiptoPop == 1 && f.custShiptoSel.length > 1 || d.title == Tags["oheader"] ) {
			f.custShiptoSel.focus();
		}
	}

	if (! Auto_req_no) {
		f.reqNo.focus();
	} else if (! Fixed_date) {
		f.dateOrdered.focus();
	} else if (which.ShowCC && (f.custCC || f.custCCSel || f.custCC_1)) {
		if (which.ShowCCpop) {
			f.custCCSel.focus();
		} else if (cost_ctr_split) {
			f.custCC_1.focus();
		} else {
			f.custCC.focus();
		}
	} else {
		f.phone.focus();
	}
	if (cost_ctr_split) {
		var j = 1, el;
		while (typeof f["custCC"+j] != "undefined") {
		}
	}
}
function setState(idx) {
	var f=ks_main.sub_main.document.forms[0];
	f.shipState.value = f.state_ref[idx].value;
}
function displayShipto() {
	if (reqfile) {
		return;
	}
	var address = new String(), tmp_array, j, k, selected, txt;
	if (ShiptoCnt && typeof Addresses[0] != "undefined") {
		for (j = 0; j < S_cnt; j++) {
			address.value = Addresses[j];
			tmp_array = address.value.split("\t");
			txt = "";
			for (k = 0; k < Shipto_pop_fields.length; k++) {
				if (txt.length && tmp_array[Shipto_pop_fields[k]].length) {
					txt += ", ";
				}
				txt += tmp_array[Shipto_pop_fields[k]];
			}
			txt=txt.replace(/&/g, "&amp;");
			if (OneShipto){
				Page += '<OPTION VALUE="'+tmp_array[0]+ '" SELECTED>'+txt+'</OPTION>';
			} else {
				selected = tmp_array[0] == custShipto ? "SELECTED" : "";
				Page += '<OPTION VALUE="'+tmp_array[0]+ '" '+selected+'>'+txt+'</OPTION>';
			}
		}
	}
	address=null;
}
function displayCC() {
	var which = reqfile ? Review : this;
	var address = new String();
	var iIndex, aIndex, st, sel_msg;
	var i=0, len, cc, ccdesc, ccs, ccdescs;
	ccs = set_multi_ref(which.Multi,which.CCs, which.Other_CCs);
	ccdescs = set_multi_ref(which.Multi,which.CCdescs, which.Other_CCdescs);
	if (typeof ccs != "undefined" && ccs.length ) {
		if (Force_cctr_sel == true && ccs.length > 1) {
			var an = "a";
		 	if (Tags["cc"].match(/^[aeiou]/i)) {
				an = "an";
			}
			Page += '<OPTION VALUE="" SELECTED>-- Select '+an+' '+Tags["cc"]+' --</OPTION>\r';
		}
		for (i=0; i < ccs.length; i++) {
			cc = ccs[i];
			if (cc != '')  {
				Page += '<OPTION VALUE="'+cc+'"';
				if ( cc == custCC) {
					Page += 'SELECTED';
				}
				Page += ' >'+cc+'&nbsp;'+ccdescs[i]+'</OPTION>';
			}
		}
	}
}
function displayDeliveryMenu() {
	var which = reqfile ? Review : this;
	var i;
	var nm = delivery_menu_names;
	var vl = delivery_menu_values;
	if (typeof nm != "undefined" && nm.length ) {
		for (i=0; i < nm.length; i++) {
			if (nm[i] != '')  {
				Page += '<OPTION VALUE="'+vl[i]+'"';
				if ( vl[i] == deliveryInst) {
					Page += 'SELECTED';
				}
				Page += ' >'+nm[i]+'&nbsp;</OPTION>';
			}
		}
	}
}
function displayExtraFields() {
	var which = reqfile ? Review : this;
	var i;
	var nm = ExtraField1Names;
	var vl = ExtraField1Values;
	if (typeof nm != "undefined" && nm.length ) {
		for (i=0; i < nm.length; i++) {
			if (nm[i] != '')  {
				Page += '<OPTION VALUE="'+vl[i]+'"';
				if ( vl[i] == extra_field_1) {
					Page += 'SELECTED';
				}
				Page += ' >'+nm[i]+'&nbsp;</OPTION>';
			}
		}
	}
}

function displayCountryDropDown() {
	var which = reqfile ? Review : this;
	var i;
	var nm = CountryNames;
	var vl = CountryCodes;
	if (typeof nm != "undefined" && nm.length ) {
		for (i=0; i < nm.length; i++) {
			if (nm[i] != '')  {
				Page += '<OPTION VALUE="'+vl[i]+'"';
				if ( vl[i] == shipCountry) {
					Page += 'SELECTED';
				}
				Page += ' >'+nm[i]+'&nbsp;</OPTION>';
			}
		}
	}
}

var ShiptoWin;
function chooseShipto(one, check_only) {
	var url, args, _request, lines = new Array();

	if (! takeWin() ) return false;
	var df = ks_main.sub_main.document.forms[0];
	if (one) {
		if (Shipto_busy) {
			return false;
		}
		Shipto_busy = true;
		var shipto = trim(df.custShipto.value);
		if ( shipto != "main" ) {
			shipto = shipto.toUpperCase();
		}
		args = 'key='+Key+'&shipto='+shipto+'&check_only=';
		if (check_only) {
			args += '1';
		}
		_request = http_request();
		_request.open('post', CgiDir+'/shiptoget3.cgi', true);
		_request.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
		_request.onreadystatechange = function() {
			if (_request.readyState == 4) {
				if (_request.status == 200) {
					lines = _request.responseText.split("\n");
					one_shipto_data(lines, check_only, Tags["shipto"]);
				} else {
					if (typeof _request == "undefined") {
						alert("Lost the Http_request.");
					} else {
						if (typeof _request.statusText == "undefined") {
							alert("The data request return a status="+_request.status);
						} else {
							alert("The data request return a status="+_request.status+"\n"+_request.statusText);
						}
					}
				}
			}
		}
		_request.send(args);
		Last_shipto_checked = shipto;
	} else {
		url=CgiDir+'/shiptoselect3.cgi?key='+Key+';sort='+Ship_to_sort;
		if (Multi_cust != gCust_id && All_ships) {
			url += ';all=1';
		}
		args = 'TOOLBAR=no,WIDTH=620,HEIGHT=300,STATUS=no,MENUBAR=no';
		args += ',SCROLLBARS=yes,RESIZABLE=yes';
		ShiptoWin = window.open(url,'shipto',args);
		ShiptoWin.focus();
	}
	return false;
}
function one_shipto_data(lines, check_only, shipto_tag) {
	var df = ks_main.sub_main.document.forms[0];
	var which = reqfile ? Review : this;
	var addr = new Array(9);
	var key_data = new Array(2);
	var jmax = typeof lines == "undefined" ? 0 : lines.length;
	for (var j = 0; j < jmax; j++) {
		key_data = lines[j].split("=");
		switch (key_data[0]) {
		case "":
			break;
		case "Address":
			addr = key_data[1].split("\t");
			Shipto_bad=false;
			df.custShipto.value = Last_OK_shipto = addr[0];
			df.custName.value = addr[1];
			df.shipAddr1.value = addr[2];
			df.shipAddr2.value = addr[3];
			df.shipAddr3.value = addr[4];
			df.shipCity.value = addr[5];
			df.shipState.value = addr[6];
			shipState = addr[6];
			df.shipZip.value = addr[7];
			shipZip = addr[7];
			if (typeof df.custCC != "undefined"  && ! which.IgnoreAddrCC && (addr[8] > "" || putByCCsel == true)) {
				df.custCC.value = addr[8];
				putByCCsel=true;
			}
			if (typeof df.shipCountry != "undefined" ) {
				df.shipCountry.value = addr[9];
			}
			if (typeof df.shipFcode != "undefined" ) {
				df.shipFcode.value = addr[10];
			}
			if (typeof df.shipType != "undefined" ) {
				df.shipType.value = addr[11];
				if (addr[11] == 'R') {
					f.shipTypeSel.selectedIndex = 1;
				} else if (addr[11] == 'C') {
					f.shipTypeSel.selectedIndex = 2;
				} else if (addr[11] == 'F') {
					f.shipTypeSel.selectedIndex = 3;
				}
			}
			if (which.ShowCCpop && df.custCC && ! which.IgnoreAddrCC) {
				selectOption(df.custCCSel, df.custCC);
			}
			break;
		case "Shipto_bad":
			Shipto_bad=Boolean(key_data[1]);
			if (Shipto_bad) {
				Last_OK_shipto = "";
				if (! check_only) {
					df.custShipto.focus();
					alert("There is no address for this "+shipto_tag+".");
				}
			} else {
				Last_OK_shipto = "shipto";
				if (! check_only) {
					show_charges();
				}
			}
			break;
		}
	}
	Shipto_busy = false;
}
function selectOption(field, value) {
	var i;

	for (i=0; i < field.options.length; i++) {
		if (field.options[i].value == value) {
			field.options[i].selected = true;
			break;
		}
	}
}
function setAddress(sel) {
	if (reqfile) {
		return;
	}
	var f = ks_main.sub_main.document.forms[0];
	var which = reqfile ? Review : this;
	if (Ship_to_show != 'no') {
		var address = new Array();
		var index,j,i;

		index = sel.selectedIndex;
		if ( ! OneShipto) {
			index -= 1;
		}
		if (index >= 0) {
			address = Addresses[index].split("\t");
			f.custName.value = address[1];
			f.shipAddr1.value = address[2];
			f.shipAddr2.value = address[3];
			f.shipAddr3.value = address[4];
			f.shipCity.value = address[5];
			f.shipState.value = address[6];
			shipState = address[6];
			f.shipZip.value = address[7];
			shipZip = address[7];
			if (which.ShowCC && f.custCC && ! cost_ctr_split) {
				if (address[8].search(/([A-Za-z0-9_])/) != -1) {
					if (! which.IgnoreAddrCC) {
						f.custCC.value = address[8];
						if (which.ShowCCpop) {
							selectOption(f.custCCSel, f.custCC.value);
						}
					}
				}
			}
			f.shipFcode.value = address[9];
			if (show_country) {
				f.shipCountry.value = address[10];
			}
			if (EnableShipType) {
				if (address[12] == 'R') {
					f.shipTypeSel.selectedIndex = 1;
				} else if (address[12] == 'C') {
					f.shipTypeSel.selectedIndex = 2;
				} else if (address[12] == 'F') {
					f.shipTypeSel.selectedIndex = 3;
				}
				f.shipType.value = address[12];
				shipType = address[12];
			}
		} else {
			f.custName.value = custName_;
			f.shipAddr1.value = shipAddr1_;
			f.shipAddr2.value = shipAddr2_;
			f.shipAddr3.value = shipAddr3_;
			f.shipCity.value = shipCity_;
			f.shipState.value = shipState_;
			shipState = shipState_;
			f.shipZip.value = shipZip_;
			shipZip = shipZip_;
			f.shipFcode.value = shipFcode;
			if (show_country) {
				f.shipCountry.value = address[10];
			}
			if (which.ShowCC && f.custCC && ! cost_ctr_split) {
				if (! which.IgnoreAddrCC) {
					f.custCC.value = custCC_;
					if (which.ShowCCpop) {
						selectOption(f.custCCSel, custCC_);
					}
				}
			}
			if (EnableShipType) {
				if (address[12] == 'R') {
					f.shipTypeSel.selectedIndex = 1;
				} else if (addr[12] == 'C') {
					f.shipTypeSel.selectedIndex = 2;
				} else if (addr[12] == 'F') {
					f.shipTypeSel.selectedIndex = 3;
				}
				f.shipType.value = address[12];
				shipType = address[12];
			}
		}
	} else {
		f.custName.value = custName_;
		f.shipAddr1.value = shipAddr1_;
		f.shipAddr2.value = shipAddr2_;
		f.shipAddr3.value = shipAddr3_;
		f.shipCity.value = shipCity_;
		f.shipState.value = shipState_;
		shipState = shipState_;
		f.shipZip.value = shipZip_;
		shipZip = shipZip_;
		f.shipFcode.value = shipFcode;
		f.shipCountry.value = shipCountry_;
		if (EnableShipType) {
			if (shipType == 'R') {
				f.shipTypeSel.selectedIndex = 1;
			} else if (shipType == 'C') {
				f.shipTypeSel.selectedIndex = 2;
			} else if (shipType == 'F') {
				f.shipTypeSel.selectedIndex = 3;
			}
			f.shipType.value = shipType;
		}
	}
	if (which.Show_tax || which.Show_freight) {
		show_charges();
	}
}
//------------------------------------------------
var Rq_timer_tries, At_startup
function newOrder(at_startup) {
	if (reqfile) {
		reqfile = reqNo = "";
		var rev_ord_parms = ";startDate="+Review_ord_parms['startDate'];
		rev_ord_parms += ";endDate="+Review_ord_parms['endDate'];
		rev_ord_parms += ";selectUser="+Review_ord_parms['selectUser'];
		rev_ord_parms += ";selectStatus="+Review_ord_parms['selectStatus'];
		rev_ord_parms += ";selectCustNum="+Review_ord_parms['selectCustNum'];
		rev_ord_parms += ";showShipto="+Review_ord_parms['showShipto'];
		rev_ord_parms += ";selectShipto="+Review_ord_parms['selectShipto'];
		rev_ord_parms += ";showCC="+Review_ord_parms['showCC'];
		rev_ord_parms += ";selectCC="+Review_ord_parms['selectCC'];
		rev_ord_parms += ";showCity="+Review_ord_parms['showCity'];
		rev_ord_parms += ";selectCity="+Review_ord_parms['selectCity'];
		rev_ord_parms += ";showState="+Review_ord_parms['showState'];
		rev_ord_parms += ";selectState="+Review_ord_parms['selectState'];
		rev_ord_parms += ";showZip="+Review_ord_parms['showZip'];
		rev_ord_parms += ";selectZip="+Review_ord_parms['selectZip'];
		rev_ord_parms += ";showDT="+Review_ord_parms['showDT'];
		rev_ord_parms += ";showApprovals="+Review_ord_parms['showApprovals'];
		rev_ord_parms += ";showImpIDs="+Review_ord_parms['showImpIDs'];
		if ( Review_ord_parms['show_mine'] ) {
			rev_ord_parms += ";show_mine=1";
		} else {
			rev_ord_parms += ";show_mine=";
		}
		rev_ord_parms += ";done1="+Review_ord_parms['done1'];
		rev_ord_parms += ";mode="+Review_ord_parms['mode'];
		ks_main.sub_main.location.replace(CgiDir+"/reviewords3.cgi?key="+Key+rev_ord_parms);
	} else {
		var saveReqNo;
		if (! needNewOrder && ! at_startup) {
			if (orderInProgress) {
				if (! confirm('Information for this order will be lost. Continue?')) {
					return;
				}
			}
			if (reqNo && PageDNA_reqNo != reqNo) {
				if (confirm('Reuse order number '+reqNo+ '?')) {
					saveReqNo = reqNo;
				}
			}
		}
		if (PageDNA_reqNo) {
			PageDNA_reqNo = "";
			reqNo = "";
		}
		shipType="";
		init(true,Multi,true);
		if (Multi) {
			setHdrFocus = true;
		}
		needNewOrder = false;
		var timestamp_only = 1;
		if ( Auto_req_no ) {
			if (!saveReqNo) {
				timestamp_only = "";
				reqNo = "";
			} else {
				reqNo = saveReqNo;
			}
		} else {
			reqNo = saveReqNo ? saveReqNo : '';
		}
		timeStamp = -1;

		// redirect the new order to the current tab, welcome screen or order header.
		// or regenerate a new key creating a new session (entry in secure table).
		if (KeyRenew) {
			if (!bypassKeyRenew) {
				parent.location.href=CgiDir+"/login.cgi" + "?keyrenew=" + Key + "&keyrenew_page=New_" + New_order_page;
			} else {
				bypassKeyRenew = false;
			}
		} else if (!at_startup ) {
			if (New_order_page == "current") {
				frames[3].location.href = frames[3].location.href;
			} else if (New_order_page == "startup") {
				frames[3].location.href = StartTab;
			} else {
				show_header(true,reqNo);
			}
		}
	}
}

function test_reqno() {
	var d=ks_main.sub_main.document;
	var f=d.forms[0];
	if (typeof PageDNA_reqNo != "undefined" && PageDNA_reqNo != "") {
		f.reqNo.value = PageDNA_reqNo;
		var r = d.getElementById("reqNo_");
		if (r) {
			r.innerHTML = PageDNA_reqNo;
			return;
		}
	}
	if (reqNo_busy && Rq_timer_tries++ < 100) {
		setTimeout("test_reqno()",100);
	} else {
		if ((timeStamp==-1 || (Auto_req_no && ! reqNo)) && Rq_timer_tries++ < 100) {
			ks_dump.set_reqNo();
		}
		if (typeof f != "undefined" && typeof f.reqNo != "undefined") {
			f.reqNo.value = reqNo;
			f.timeStamp.value = timeStamp;
			timeOffset = timeStamp * 1000 - new Date(); // so not all time checks need to call the server
			fix_dateOrdered();
			var r = d.getElementById("reqNo_");
			if (r) {
				r.innerHTML = reqNo;
			}
		} else if (Rq_timer_tries++ < 100) {
			setTimeout("test_reqno()",100);
		}
	}
}

function getNextReqNo(timestamp_only) {
	var request = CgiDir+'/orderno3.cgi?key='+Key+';cust_id='+cust_id+';timestamp_only='+timestamp_only;
	ks_dump.location.replace(request);
}

function makeID(q,sub_seq,quot_esc,newline) {

	if ( typeof q.imprint[sub_seq] == "undefined") {
		return "";
	}
	if (typeof q.extLabel != "undefined") {
		return q.imprint[sub_seq];
	}
	var j,fbfield,regexp,out="";
	var p = q.imprint[sub_seq];
	// Accommodate PageDNA IDs.
	if ( typeof p.length == "undefined" && typeof q.IDfields[0] != "undefined" && q.IDfields[0].length > 3) {
		return(q.IDfields[0]);
	}
	if (q.IDfields.length || q.IDfieldsBk.length) {
		if (typeof q.IDfields[0] != "undefined") {
			for (j = 0; j < q.IDfields.length; j++) {
				out += prettyID(p[q.IDfields[j]],quot_esc,newline);
				if (out.length >= 30) {
					break;
				}
			}
		}
		p = q.imprintBk[sub_seq];
		if (typeof q.IDfieldsBk[0] != "undefined") {
			for (j = 0; j < q.IDfieldsBk.length; j++) {
				out += prettyID(p[q.IDfieldsBk[j]],quot_esc,newline);
				if (out.length >= 30) {
					break;
				}
			}
		}
	} else {
		for (fb = 0; fb < 2; fb++) {
			for (j = 0; j < p.length; j++) {
				if (typeof p[j] != "undefined" && p[j].length) {
					out += prettyID(p[j],quot_esc,newline);
					if (out.length >= 30) {
						break;
					}
				}
			}
			if (out.length >= 30) {
				break;
			}
			p = q.imprintBk[sub_seq];
		}
	}
	return out;
}
function prettyID(txt,quot_esc,newline) {
	if (quot_esc) {
		txt = trim(txt);
		if ( ! txt ){
			return "";
		}
		var re = /\'/g;
		txt = txt.replace(re, "\\\'");
		re = /\"/g;
		txt = txt.replace(re, "&#034;");
	}
	if (newline) {
		txt += "&#13;";
	} else {
		txt += " ";
	}
	return txt;
}
function hide_imprint_info() {
	var imps, icnt, j, k, ii, db_idx="", formNo, q;

	imps = icnt = 0;
	for ( j = 1; j <= Item_cnt; j++) {
		q = On_order[j];
		if ( q.is_imprint) {
			for ( k = 0;  k < q.cnt; k++ ) {
				if ( q.imprint[k] || typeof q.imprintBk != "undefined" && q.imprintBk[k] ) {
					if ( q.qty[k] == 0) {
						alert('Imprint information for item '+q.formNo+' was completed, but no quantity has been ordered');
						continue;
					}
					icnt++;
					imps++;
					if ( typeof q.imprint[k] != "undefined" ) {
						ii = q.imprint[k];
						if (typeof ii['bkid'] != "undefined") {
							db_idx = ii['bkid'];
						}
						ii_write(ii, icnt, q, "", q.imp_idx[k], q.db_idx[k]);
					}
					if ( typeof q.imprintBk[k] != "undefined"  && q.imprintBk[k]) {
						ii = q.imprintBk[k];
						ii_write(ii, icnt, q, "Bk", q.imp_idx[k], db_idx);
					}
				}
			}
		} else {
			icnt++;
			if (q.flags & 0x8000) {
				imps++;
				ii_write("", icnt, q, "", "", "");
				if (typeof q.has_backer != "undefined" && q.has_backer) {
					ii_write("", icnt, q, "Bk", "", "");
				}
			}
		}
	}
	if (imps) {
		Page += '<INPUT NAME="impCntMax" TYPE="hidden" VALUE="'+imps+ '">';
	}
}
function ii_write(ii, icnt, q, Bk, imp_idx, db_idx) {
	var regexp=/\\\+/g, plus="%2b", ifield, ifname;
	Page += '<INPUT NAME="imprint'+Bk+icnt+'" TYPE="hidden" VALUE="1">\r';
	Page += '<INPUT NAME="imp'+Bk+'FormNo'+icnt+'" TYPE="hidden" VALUE="'+esc(q.formNo).replace(regexp,plus)+'">\r';
	Page += '<INPUT NAME="imp'+Bk+'I_num'+icnt+'" TYPE="hidden" VALUE="'+q.i_num+'">\r';
	for (ifield in ii) {
		if (ifield.search(/^\d*$/) != -1) {
			ifname = IFname[ifield];
			
			if (typeof ifname != "undefined") {
				ifname = ifname.substring(0,1).toUpperCase()+ifname.substring(1);
				if (typeof ii[ifield] != "undefined") {
					Page += '<INPUT NAME="imp'+Bk+ifname+icnt+'" TYPE="hidden" VALUE="'+esc(ii[ifield]).replace(regexp,plus)+'">\r';
				}
			}
		} else if (ifield.search(/^ship2_/) != -1) {
			ifname = ifield.substring(0,1).toUpperCase()+ifield.substring(1);
			Page += '<INPUT NAME="imp'+Bk+ifname+icnt+'" TYPE="hidden" VALUE="'+esc(ii[ifield]).replace(regexp,plus)+'">\r';
		}
	}
	if ( typeof imp_idx != "undefined" && imp_idx != "" ) {
		Page += '<INPUT NAME="imp'+Bk+'NameSel'+icnt+'" TYPE="hidden" VALUE="'+imp_idx+'">\r';
	}
	if ( typeof db_idx != "undefined" && db_idx != "" ) {
		Page += '<INPUT NAME="imp'+Bk+'KeySel2'+icnt+'" TYPE="hidden" VALUE="'+db_idx+'">\r';
	}
}
function load_next(url) {
	if (takeWin()) {
		ks_main.sub_main.location.href=url;
	}
}
var HelpWin
function openhelp() {
	if ( ! HelpWin || HelpWin.closed ) {
		var url = CgiDir+"/show_help.cgi?key="+Key+";cust_id="+cust_id+";gCust_id="+gCust_id+";main_cust="+Main_cust;
		var title = "help";
		var features = "menubar=no,toolbar=no,scrollbars,width=500,height=375,resizable=yes";
		HelpWin = window.open(url, title, features);
	} else {
		HelpWin.focus();
	}
}
var qtyLookupWin
function qtyLookupWindow() {
	if ( ! qtyLookupWin || qtyLookupWin.closed ) {
		var url = CgiDir+"/qtyLookup.cgi?key="+Key+";cust_id="+cust_id+";gCust_id="+gCust_id+";main_cust="+Main_cust;
		var title = "QuantityLookup";
		var features = "menubar=no,toolbar=no,scrollbars,width=500,height=375,resizable=yes";
		qtyLookupWin = window.open(url, title, features);
	} else {
		qtyLookupWin.focus();
	}
}

function esc(str) {
	return escape(str.replace(/&#034;/g, '"')).replace(/\+/g,"%2B");
}

function openAgree() {
	var AgreeLocation = '/catalog/html/imp_agreement.' + gCust_id + '.html';
        var Agreewin=window.open(AgreeLocation,'Order_Agreement','directories=no,height=500,width=600,toolbar=no,menubar=no,resizable=yes,scrollbars=yes');
        Agreewin.focus();
}

