
function convertFrames2Cook() {
	var obs = new Object();
	var idx = 0;
	var myFrame;
	for (i=0; i<myOrder.frameCnt; i++) {
		myFrame = frames[myOrder.frames[i]];
		if (myFrame == null) {
			continue;
		}
		if (myFrame.hasFrame) {
			var frameDesc, frameNote = null;
			if (myFrame.isCut && myFrame.isFloater()) {
				if (myFrame.isMetal) {
					frameDesc = "Metal";
				} else {
					frameDesc = myFrame.wood;
				}
				frameDesc += " frame";
				if (myFrame.isMetal) {
					frameDesc += " - " + myFrame.finishName();
				}
				frameDesc += " " + convert2Fraction(myFrame.vertical) + "x" + convert2Fraction(myFrame.horizontal) + " (" + myFrame.frameFeet() + "ft)";
				frameNote = "frame " + convert2Fraction(myFrame.vertical) + "x" + convert2Fraction(myFrame.horizontal) + ", canvas " + convert2Fraction(myFrame.horizontal - (myFrame.floatSize * 2)) + "x" + convert2Fraction(myFrame.vertical - (myFrame.floatSize * 2)) + ", float " + convert2Fraction(myFrame.floatSize);
			} else {
				frameDesc = myFrame.frameDesc();
				frameNote = myFrame.note4Ord();
			}
			obs[idx++] = new LineOb(myFrame.itemNo(), frameDesc, myFrame.framePrice(), myFrame.qty(), false, myFrame.feet4Ord(), frameNote);
			if (myFrame.isMetal) {
				obs[idx++] = new LineOb(myFrame.metalHardwareItem, myFrame.metalHardwareDescription, myFrame.metalHardwarePrice, myFrame.qty(), false, 0, null);
			}
			if (myFrame.isOverSize()) {
				obs[idx++] = new LineOb(myFrame.overSizeItemNo(), myFrame.overSizeDesc(), myFrame.overSizePrice(), myFrame.qty(), false, myFrame.feet4Ord(), null);
			}
			if (!myFrame.isMetal && parseInt(myFrame.finishNumber(),10) > 0) {
				obs[idx++] = new LineOb(myFrame.finItemNo(), myFrame.finDesc(), myFrame.finPrice(), myFrame.qty(), false, myFrame.feet4Ord(), null);
			}
			if (!myFrame.isMetal && myFrame.isCut && myFrame.joinPrice > 0) {
				obs[idx++] = new LineOb(myFrame.joinItem, myFrame.joining, myFrame.joinPrice, myFrame.qty(), false, 0, null);
			}
			if (myFrame.canRadiusTop() && myFrame.radiusTop) {
				obs[idx++] = new LineOb(myFrame.radiusItemNo(), myFrame.radiusDesc(), myFrame.radiusPrice(), myFrame.qty(), false, myFrame.feet4Ord(), null);
			}
			if (!myFrame.isMetal && myFrame.blackInterior) {
				obs[idx++] = new LineOb(myFrame.blackIntItemNo(), myFrame.blackIntDesc(), myFrame.blackInteriorPrice(), myFrame.qty(), false, myFrame.feet4Ord(), null);
			}
			if (!myFrame.isMetal && myFrame.isCut && myFrame.drillFromBack) {
				obs[idx++] = new LineOb(myFrame.drillFromBackItemNo(), myFrame.drillFromBackDesc(), myFrame.drillFromBackPrice, myFrame.qty(), false, 0, null);
			}
			if (myFrame.doesHaveSpacer()) {
				obs[idx++] = new LineOb(myFrame.spItemNo(), myFrame.spDesc(), myFrame.spPrice(), myFrame.qty(), false, myFrame.feet4Ord(), myFrame.note4Ord());
				if (myFrame.isOverSize()) {
					obs[idx++] = new LineOb(myFrame.overSizeSpItemNo(), myFrame.overSizeSpDesc(), myFrame.overSizeSpPrice(), myFrame.qty(), false, myFrame.feet4Ord(), null);
				}
				if (parseInt(myFrame.spFinishNumber(),10) > 0) {
					obs[idx++] = new LineOb(myFrame.spFinItemNo(), myFrame.spFinDesc(), myFrame.spFinPrice(), myFrame.qty(), false, myFrame.feet4Ord(), null);
				}
			}
			if (myFrame.doesHaveStrainer()) {
				obs[idx++] = new LineOb(myFrame.stItemNo(), myFrame.stDesc(), myFrame.stPrice(), myFrame.qty(), false, myFrame.feet4Ord(), myFrame.note4Ord());
				if (myFrame.isOverSize()) {
					obs[idx++] = new LineOb(myFrame.overSizeStItemNo(), myFrame.overSizeStDesc(), myFrame.overSizeStPrice(), myFrame.qty(), false, myFrame.feet4Ord(), null);
				}
				if (myFrame.isCut && myFrame.stDrillPrice > 0) {
					obs[idx++] = new LineOb(myFrame.stDrillItem, myFrame.stDrillDesc(), myFrame.stDrillPrice, myFrame.qty(), false, 0, null);
				}
				if (myFrame.isCut && myFrame.stJoinPrice > 0) {
					obs[idx++] = new LineOb(myFrame.stJoinItem, myFrame.stJoinDesc(), myFrame.stJoinPrice, myFrame.qty(), false, 0, null);
				}
			}
		}
		if (myFrame.hasMat && myFrame.isCut && !myFrame.isFloater()) {
			if ((myFrame.matStyle == 0 || myFrame.matStyle == 2) && myFrame.matPrice() > 0) {
				var matDesc = myFrame.matDesc();
				var matNate = ''
				var p = matDesc.indexOf(',');
				if (p != -1) {
				  matNote = convert2Fraction(myFrame.vertical) + "x" + convert2Fraction(myFrame.horizontal) + ", " + matDesc.substring(p+2);
				  // this part didn't work with dimensions that had fractions - duh!
					//matNote = matDesc.substring(0, matDesc.indexOf(" ")) + ", " + matDesc.substring(p+2);
					matDesc = matDesc.substring(0, p);
				}
				obs[idx++] = new LineOb(myFrame.matItemNo(), matDesc, myFrame.matPrice(), myFrame.qty(), false, 0, matNote);
			}
			if ((myFrame.matStyle == 1 || myFrame.matStyle == 2) && myFrame.boardPrice() > 0) {
				obs[idx++] = new LineOb(myFrame.boardItemNo(), myFrame.boardDesc(), myFrame.boardPrice(), myFrame.qty(), false, 0, myFrame.boardDesc().substring(12)); // strip off "Sized Board"
			}
		}
		if (myFrame.hasAcrylic && myFrame.isCut && !myFrame.isFloater()) {
			obs[idx++] = new LineOb(myFrame.acrItemNo(), myFrame.acrDesc(), myFrame.acrylicPrice(), myFrame.qty(), false, 0, myFrame.acrDesc().substring(12)); // strip off "Cut Acrylic"
		}
		if (myFrame.hasFoam && myFrame.isCut && !myFrame.isFloater()) {
			obs[idx++] = new LineOb(myFrame.foamItemNo(), myFrame.foamDesc(), myFrame.foamboardPrice(), myFrame.qty(), false, 0, myFrame.foamDesc().substring(15)); // strip off "Cut Backing Board"
		}
	}
	var ret = "";
	for (i=0; i<idx; i++) {
		ret += obs[i].ITEM + ":";
		ret += obs[i].DESC + ":";
		ret += obs[i].willquote ? "willquote:" : obs[i].PRC + ":";
		ret += obs[i].QTY + ":";
		ret += obs[i].FEET + ":";
		ret += obs[i].NOTE + ":";
	}
	return ret;
}
	
var alternate;
function alternateColors(col1, col2) {
	alternate = !alternate;
	return alternate ? col1 : col2;
}
function rightSideBkgd(tab) {
	var ret = " style=\"background-color: ";
	if (tab == selectedTab) {
		ret += alternateColors("#722", "#711");
	} else {
		ret += alternateColors("#666", "#555");
	}
	if (tab != null) {
		ret += "; cursor: pointer"
	}
	ret += "\"";
	return ret;
}
function orderBkgd(id) {
	var ret = " style=\"background-color: ";
	if (selectedRightTab == null) {
		ret += alternateColors("#ddd", "#fff");
	} else {
		if (myFrame != null && myFrame.id == id) {
			ret += alternateColors("#722", "#711");
		} else {
			ret += alternateColors("#666", "#555");
		}
	}
// 	if (id != null) {
// 		ret += "; cursor: pointer"
// 	}
	ret += "\"";
	return ret;
}

function selectIt(id, tab) {
//	alert(id);
	var json = frames[id].toJSONString()
	SetCookie("CurrentOrderItem", json);
	//alert (frames[id].pnum);
	if (!frames[id].pnum) {
		location.href = "/Products/Matboard.php?Tab=" + tab;
	} else if (myFrame == null || !myFrame.pnum || frames[id].isMetal != myFrame.isMetal) {
		location.href = "/Products/Frame.php?" + (frames[id].isMetal ? "Metal=" : "Number=") + frames[id].pnum + "&Tab=" + tab;
	} else {
		if (frames[id].pnum != myFrame.pnum) {
			startUpTab = tab;
			switchProfile(frames[id].pnum);
			myFrame.loadJSONString(json);
		} else {
			myFrame.loadJSONString(json);
			selectThisOrder();
			selectedTab = null; // force reload of whatever tab section
			selectTabPlus(tab);
		}
	}
}

function toggleIt(id) {
	var myFrame = frames[id];
	myFrame.collapsed = !myFrame.collapsed;
	populateOrder();
	scrollRight();
}

function removeFromOrder(id) {
	// remove it from the order
	myOrder.removeFrame(id);
	SetCookie("AllOrders", myOrder.toJSONString());
	frames[id] = null;
	populateOrder();
}

function qtyIt(id) {
	var mf = frames[id];
	var ent = (self.prompt("Enter the new quantity.\n(Enter 0 to delete it.)", mf.quantity));
	if (ent != null) {
		var q = parseInt(ent);
		if (q < 1) {
			removeFromOrder(id);
		} else if (isNaN(q)) {
			qtyIt(id); // try again, buddy
		} else {
			mf.setQuantity(q);
			SetCookie("CurrentOrderItem", mf.toJSONString());
	
			// this is an ugly hack, but it works really well, so what the hell.
			// it loads a php script into an image that's inside a hidden div. 
			// just moves the CurrentOrderItem cookie into the PHP session. 
			setInnerHTMLById("<img src=\"" + noCacheUrl("/Products/addtoOrder.php") + "\" />", "hiddenthang");
		
			myOrder.addFrame(id);
			SetCookie("AllOrders", myOrder.toJSONString());
			populateOrder();
		}
	}
}

pageBkgd = "#666";

function populateOrder() {

	var borderTop = "border-top: solid 1px #000;";
	var borderLeft = "border-left: solid 1px #000;";
	var borderRight = "border-right: solid 1px #000;";
	
	function selectable(id, tab, style) {
		var ret = "";
		ret += "onclick=\"return selectIt('"+ id +"', '"+ tab +"')\" style=\"cursor: pointer;";
		if (style != null) {
			ret += style;
		}
		ret += "\"";
		return ret;
	}


	function populateFrame(id) {
		if (!id) {
			return; // exit out if we're passed crap
		}
		var myFrame = frames[id];
		if (myFrame == null) {
			return; // this is probably what happens when a qty is set to zero
		}
		
		if (myFrame.collapsed) {
			html += "<tr" + orderBkgd(id) + "><td align=\"right\" onclick=\"return toggleIt('" + myFrame.id + "')\" style=\"cursor: pointer; width:15px; background-color: "+ pageBkgd +"\"><img src=\"/images/folder_closed_redish.gif\" alt=\">\" width=\"13\" height=\"13\" border=\"0\" /></td>";
		//	html += "<td onclick=\"return selectIt('"+ myFrame.id +"')\" style=\"cursor: pointer; " + borderTop + borderLeft + "\">" + myFrame.itemNo() + "<"+"/td>";
			html += "<td colspan=\"2\" " + selectable(id, (myFrame.pnum ? "Frame" : (myFrame.hasMat ? "Mat" : (myFrame.hasAcrylic ? "Acrylic" : (myFrame.hasFoam ? "Foam" : "")))), borderTop + borderLeft) + ">" + myFrame.desc() + "<"+"/td><td align=\"right\" style=\"" + borderTop + "\">" + CashFormat(RoundToCent(myFrame.allSubtotal())) + "<"+"/td>";
			html += "<td align=\"center\" onclick=\"return qtyIt('" + myFrame.id + "')\" style=\"cursor: pointer;" + borderTop + "\">" + myFrame.qty() + "<"+"/td>";
			html += "<td align=\"right\" style=\"" + borderTop + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.allSubtotal())) + "<"+"/td>";
			html += "<"+"/tr>";
		} else {
			var hasBeenContained = false;
			var toggler = "<td align=\"right\" onclick=\"return toggleIt('" + myFrame.id + "')\" style=\"cursor: pointer; background-color: "+ pageBkgd +"\"><img src=\"/images/folder_expanded_redish.gif\" alt=\"V\" width=\"13\" height=\"13\" border=\"0\" /></td>";
			var notoggler = "<td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td>";
			if (myFrame.hasFrame) {
				hasBeenContained = true;
				html += "<tr" + orderBkgd(id) + ">" + toggler +
				"<td " + selectable(id, "Frame", borderLeft + borderTop) + ">" + myFrame.itemNo() + "<"+"/td>" +
				"<td " + selectable(id, "Frame", borderTop) + ">" + myFrame.frameDesc() + "<"+"/td>" +
				"<td align=\"right\" style=\"" + borderTop + "\">" + CashFormat(myFrame.framePrice()) + "<"+"/td>";
				html += "<td align=\"center\" onclick=\"return qtyIt('" + myFrame.id + "')\" style=\"cursor: pointer;" + borderTop + "\">" + myFrame.qty() + "<"+"/td>";
				html += "<td align=\"right\" style=\"" + borderTop + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.framePrice())) + "<"+"/td>";
				html += "<"+"/tr>";
				if (myFrame.isOverSize()) {
					html += "<tr" + orderBkgd(id) + ">" + notoggler + "<td " + selectable(id, "Frame", borderLeft) + ">" + myFrame.overSizeItemNo() + "<"+"/td><td " + selectable(id, "Frame") + ">" + myFrame.overSizeDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.overSizePrice()) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.overSizePrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if (!myFrame.isMetal && parseInt(myFrame.finishNumber(),10) > 0) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td>" +
					"<td " + selectable(id, "Frame", borderLeft) + ">" + myFrame.finItemNo() + "<"+"/td><td " + selectable(id, "Frame") + ">" + myFrame.finDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.finPrice()) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.finPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if (!myFrame.isMetal && myFrame.isCut && myFrame.joinPrice > 0) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Frame", borderLeft) + ">" + myFrame.joinItem + "<"+"/td><td " + selectable(id, "Frame") + ">" + myFrame.joining + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.joinPrice) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.joinPrice)) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if (myFrame.isMetal) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Frame", borderLeft) + ">" + myFrame.metalHardwareItem + "<"+"/td><td " + selectable(id, "Frame") + ">" + myFrame.metalHardwareDescription + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.metalHardwarePrice) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.metalHardwarePrice)) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if (myFrame.canRadiusTop() && myFrame.radiusTop) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Frame", borderLeft) + ">" + myFrame.radiusItemNo() + "<"+"/td><td " + selectable(id, "Frame") + ">" + myFrame.radiusDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.radiusPrice()) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.radiusPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if (!myFrame.isMetal && myFrame.blackInterior) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Frame", borderLeft) + ">" + myFrame.blackIntItemNo() + "<"+"/td><td " + selectable(id, "Frame") + ">" + myFrame.blackIntDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.blackInteriorPrice()) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.blackInteriorPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if (!myFrame.isMetal && myFrame.isCut && myFrame.drillFromBack) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Frame", borderLeft) + ">" + myFrame.drillFromBackItemNo() + "<"+"/td><td " + selectable(id, "Frame") + ">" + myFrame.drillFromBackDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.drillFromBackPrice) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.drillFromBackPrice)) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if (myFrame.doesHaveSpacer()) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Spacers", borderLeft) + ">" + myFrame.spItemNo() + "<"+"/td><td " + selectable(id, "Spacers") + ">" + myFrame.spDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.spPrice()) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.spPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
					if (myFrame.isOverSize()) {
						html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Spacers", borderLeft) + ">" + myFrame.overSizeSpItemNo() + "<"+"/td><td " + selectable(id, "Spacers") + ">" + myFrame.overSizeSpDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.overSizeSpPrice()) + "<"+"/td>";
						html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.overSizeSpPrice())) + "<"+"/td>";
						html += "<"+"/tr>";
					}
					if (parseInt(myFrame.spFinishNumber(),10) > 0) {
						html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Spacers", borderLeft) + ">" + myFrame.spFinItemNo() + "<"+"/td><td " + selectable(id, "Spacers") + ">" + myFrame.spFinDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.spFinPrice()) + "<"+"/td>";
						html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.spFinPrice())) + "<"+"/td>";
						html += "<"+"/tr>";
					}
				}
				if (myFrame.doesHaveStrainer()) {
					html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Strainers", borderLeft) + ">" + myFrame.stItemNo() + "<"+"/td><td " + selectable(id, "Strainers") + ">" + myFrame.stDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.stPrice()) + "<"+"/td>";
					html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.stPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
					if (myFrame.isOverSize()) {
						html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Strainers", borderLeft) + ">" + myFrame.overSizeStItemNo() + "<"+"/td><td " + selectable(id, "Strainers") + ">" + myFrame.overSizeStDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.overSizeStPrice()) + "<"+"/td>";
						html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.overSizeStPrice())) + "<"+"/td>";
						html += "<"+"/tr>";
					}
					if (myFrame.isCut && myFrame.stDrillPrice > 0) {
						html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Strainers", borderLeft) + ">" + myFrame.stDrillItem + "<"+"/td><td " + selectable(id, "Strainers") + ">" + myFrame.stDrillDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.stDrillPrice) + "<"+"/td>";
						html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.stDrillPrice)) + "<"+"/td>";
						html += "<"+"/tr>";
					}
					if (myFrame.isCut && myFrame.stJoinPrice > 0) {
						html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td " + selectable(id, "Strainers", borderLeft) + ">" + myFrame.stJoinItem + "<"+"/td><td " + selectable(id, "Strainers") + ">" + myFrame.stJoinDesc() + "<"+"/td><td align=\"right\">" + CashFormat(myFrame.stJoinPrice) + "<"+"/td>";
						html += "<td align=\"center\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + "\">" + CashFormat(myFrame.subTotal(myFrame.stJoinPrice)) + "<"+"/td>";
						html += "<"+"/tr>";
					}
				}
				
			}
			if (myFrame.hasMat && myFrame.isCut && !myFrame.isFloater()) {
				if ((myFrame.matStyle == 0 || myFrame.matStyle == 2) && myFrame.matPrice() > 0) {
					var addstyle = "";
					html += "<tr" + orderBkgd(id) + ">";
					if (hasBeenContained) {
						html += notoggler;
					} else {
						html += toggler;
						hasBeenContained = true;
						addstyle = borderTop;
					}
					html += "<td " + selectable(id, "Mat", borderLeft + addstyle) + ">" + myFrame.matItemNo() + "<"+"/td><td " + selectable(id, "Mat", addstyle) + ">" + myFrame.matDesc() + "<"+"/td><td align=\"right\" style=\"" + addstyle + "\">" + CashFormat(myFrame.matPrice()) + "<"+"/td>";
					html += "<td align=\"center\" onclick=\"return qtyIt('" + myFrame.id + "')\" style=\"cursor: pointer;" + addstyle + "\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + addstyle + "\">" + CashFormat(myFrame.subTotal(myFrame.matPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
				if ((myFrame.matStyle == 1 || myFrame.matStyle == 2) && myFrame.boardPrice() > 0) {
					var addstyle = "";
					html += "<tr" + orderBkgd(id) + ">";
					if (hasBeenContained) {
						html += notoggler;
					} else {
						html += toggler;
						hasBeenContained = true;
						addstyle = borderTop;
					}
					html += "<td " + selectable(id, "Mat", borderLeft + addstyle) + ">" + myFrame.boardItemNo() + "<"+"/td><td " + selectable(id, "Mat", addstyle) + ">" + myFrame.boardDesc() + "<"+"/td><td align=\"right\" style=\"" + addstyle + "\">" + CashFormat(myFrame.boardPrice()) + "<"+"/td>";
					html += "<td align=\"center\" onclick=\"return qtyIt('" + myFrame.id + "')\" style=\"cursor: pointer;" + addstyle + "\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + addstyle + "\">" + CashFormat(myFrame.subTotal(myFrame.boardPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
			}
			if (myFrame.hasAcrylic && myFrame.isCut && !myFrame.isFloater()) {
				if (myFrame.acrylicPrice() > 0) {
					var addstyle = "";
					html += "<tr" + orderBkgd(id) + ">";
					if (hasBeenContained) {
						html += notoggler;
					} else {
						html += toggler;
						hasBeenContained = true;
						addstyle = borderTop;
					}
					html += "<td " + selectable(id, "Acrylic", borderLeft + addstyle) + ">" + myFrame.acrItemNo() + "<"+"/td><td " + selectable(id, "Acrylic", addstyle) + ">" + myFrame.acrDesc() + "<"+"/td><td align=\"right\" style=\"" + addstyle + "\">" + CashFormat(myFrame.acrylicPrice()) + "<"+"/td>";
					html += "<td align=\"center\" onclick=\"return qtyIt('" + myFrame.id + "')\" style=\"cursor: pointer;" + addstyle + "\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + addstyle + "\">" + CashFormat(myFrame.subTotal(myFrame.acrylicPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
			}
			if (myFrame.hasFoam && myFrame.isCut && !myFrame.isFloater()) {
				if (myFrame.foamboardPrice() > 0) {
					var addstyle = "";
					html += "<tr" + orderBkgd(id) + ">";
					if (hasBeenContained) {
						html += notoggler;
					} else {
						html += toggler;
						hasBeenContained = true;
						addstyle = borderTop;
					}
					html += "<td " + selectable(id, "Foam", borderLeft + addstyle) + ">" + myFrame.foamItemNo() + "<"+"/td><td " + selectable(id, "Foam", addstyle) + ">" + myFrame.foamDesc() + "<"+"/td><td align=\"right\" style=\"" + addstyle + "\">" + CashFormat(myFrame.foamboardPrice()) + "<"+"/td>";
					html += "<td align=\"center\" onclick=\"return qtyIt('" + myFrame.id + "')\" style=\"cursor: pointer;" + addstyle + "\">" + myFrame.qty() + "<"+"/td><td align=\"right\" style=\"" + borderRight + addstyle + "\">" + CashFormat(myFrame.subTotal(myFrame.foamboardPrice())) + "<"+"/td>";
					html += "<"+"/tr>";
				}
			}
			html += "<tr" + orderBkgd(id) + "><td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td><td colspan=\"2\" align=\"center\" style=\"" + borderLeft + "\"><b>Frame Total</b><"+"/td><td align=\"right\"><b>" + CashFormat(RoundToCent(myFrame.allSubtotal())) + "<"+"/b><"+"/td>";
			html += "<td align=\"center\" onclick=\"return qtyIt('" + myFrame.id + "')\" style=\"cursor: pointer\">" + myFrame.qty() + "<"+"/td>";
			html += "<td align=\"right\" style=\"" + borderRight + "\"><b>" + CashFormat(myFrame.subTotal(myFrame.allSubtotal())) + "<"+"/a><"+"/b><a name=\"" + id + "\"><"+"/td>";
			html += "<"+"/tr>";
		}
	
		prc += myFrame.subTotal(myFrame.allSubtotal());

	}
	
	alternate = false;
	
	var t=0, OrderTotal=0, prc=0;
	var html = "<table id=\"theorder\" border=\"0\" cellspacing=\"0\" cellpadding=\"5\">\n";
	html += "<tr" + orderBkgd() + ">\n" +
 	"<td style=\"background-color: "+ pageBkgd +"\">&nbsp;</td>\n" + 
	"<td style=\"border-left: solid 1px #444\"><b>Item#</b></TD>\n" +
	"<TD><b>Description</b></TD>\n" +
	"<TD align=\"right\"><b>Price</b></TD>\n" +
	"<TD align=\"center\"><b>Qty</b></TD>\n" +
	"<td style=\"border-right: solid 1px #444\" align=\"right\"><b>Total</b></TD>\n" +
 	"</tr>\n";
	
	for (i=0; i<myOrder.frameCnt; i++) {
		populateFrame(myOrder.frames[i]);
	}

	OrderTotal = prc;
	// below is the old style cookie stuff
	
	for (i=0; i < gNoRows; i++) {
		var desc = ord[i].DESC;
		if ( desc.length > 40 ) desc = desc.substr(0, 40)+'...';
		var itemNo = ord[i].ITEM;
		if ( itemNo.length > 40 ) itemNo = itemNo.substr(0, 40)+'...';
		
		html += "<tr" + orderBkgd() + "><td style=\"background-color: "+ pageBkgd + "\">&nbsp;</td>";
		
		html += "<td style=\"" + borderLeft + borderTop + "\">" + itemNo + "<"+"/td>";
		html += "<td style=\"" + borderTop + "\">" + desc + "<"+"/td>";
		if (ord[i].willquote)
			html += "<TD ALIGN=CENTER nowrap style=\"" + borderTop + "\"><strong>Will Quote<"+"/strong><"+"/TD>";
		else
			html += "<td align=\"right\" style=\"" + borderTop + "\">" + CashFormat(ord[i].PRC) +"<"+"/td>";
		html += "<td align=center style=\"cursor: pointer;" + borderTop + "\" onclick=\"QtyFunky(" + i + ",ord[" + i + "].QTY)\">" + ord[i].QTY.toString() + "<"+"/td>";
		t = RoundIt((ord[i].QTY * ord[i].PRC), 2);
		OrderTotal += t ;

		if (ord[i].willquote)
			html += "<td align=\"right\" nowrap style=\"" + borderTop + "\"><strong>Will Quote<"+"/strong><"+"/TD>";
		else
			html += "<td align=\"right\" style=\"" + borderRight + borderTop + "\">" + CashFormat(t) + "<"+"/td>";
		
		html += "<"+"/tr>";
	}

	html += "<tr style=\"background-color: "+ pageBkgd +"\"><td>&nbsp;</td><td colspan='4' align='right' nowrap style=\"" + borderTop + "\"><b>Order Total :<"+"/b>";
	if (anywillquotes)	html += " <strong>(This order contains items not included in this total)<"+"/strong>";
	html += "<"+"/td><td align=right style=\"" + borderTop + "\"><b>$" + CashFormat(RoundIt((OrderTotal),2)) + "<"+"/b>"; // removed RoundtoCent(OrderTotal)
	html += "<"+"/td><"+"/tr>\n";
	
	var currentUrl = document.location.href;
	var regV = /\/Order\//gi;
	var isOrder = currentUrl.match(regV);
	if (isOrder) {
		html += "<tr style=\"background-color: "+ pageBkgd +"\"><td>&nbsp;</td><td colspan='6' align='right' nowrap ><input type='button' onclick='javascript:Finalize()' value='Proceed to Checkout' style='border: 2px outset #CC0000; color: #660000;'/></td></tr>\n";
	}
	
	html += "</table>\n";
	setInnerHTMLById(html, "ordertable");
	
	if (OrderTotal == 0) {
		if (elem = myGetElementById("OrderText")) {
			elem.style.visibility = "hidden";
			elem.style.display = "none";
		}
	} else {
		if (myFrame != null && myFrame.allSubtotal() > 0) {
			if (elem = myGetElementById("EmptyOrderText")) {
				elem.style.visibility = "visible";
				elem.style.display = "block";
			}
		}
	}

}

//

function LineOb(ITEM, DESC, PRC, QTY, willquote, FEET, NOTE) {
	this.ITEM = ITEM;
	this.DESC = DESC;
	this.PRC = PRC;
	this.QTY = QTY;
	this.willquote = willquote; // not necessary anymore, but I'm leaving this here for now
	this.FEET = FEET;	// for items priced by feet
	this.NOTE = NOTE;	// for items with detailed specs (mats, floater frames)
}

function ReadOrder() {
	var start, end;
	var ITEM, DESC, PRC, QTY, FEET;
	
	var cook = ReturnCookie("MPFOrder");

	gNoRows = 0;
	var no = 0;
	var total = 0;
	var willquote = false ;
	
	while (no < cook.length-2) {
		start = no;
		end = cook.indexOf(":",start);
		ITEM = cook.substring(start, end);
		
		start = end + 1;
		end = cook.indexOf(":", start);
		DESC = cook.substring(start, end);
		
		start = end + 1;
		end = cook.indexOf(":", start);
		PRC = cook.substring(start, end);
		willquote = (PRC == "willquote");
		if (willquote) {
			PRC = 0 ;
			anywillquotes = true ;
		} else {
			PRC = parseFloat(RoundToCent(PRC));
//			PRC = parseFloat(RoundIt(PRC, 2));
		}

		start = end + 1;
		end = cook.indexOf(":", start);
		QTY = parseFloat(cook.substring(start, end));
		
		start = end + 1;
		end = cook.indexOf(":", start);
		FEET = parseFloat(cook.substring(start, end));
				
		start = end + 1;
		end = cook.indexOf(":", start);
		NOTE = cook.substring(start, end);
				
		ord[gNoRows] = new LineOb(ITEM, DESC, PRC, QTY, willquote, FEET, NOTE);
				
		no = end + 1;
		gNoRows++;
	}
}

function ReCookie() {
	var i, cook="";
	
	for (i=0;i<gNoRows;i++) {
		cook += ord[i].ITEM + ":";
		cook += ord[i].DESC + ":";
		cook += ord[i].willquote ? "willquote:" : ord[i].PRC + ":";
		cook += ord[i].QTY + ":";
		cook += ord[i].FEET + ":";
		cook += ord[i].NOTE + ":";
	}
	SetCookie("MPFOrder", cook);
}

function RoundIt(num, dec) {
// num - the number to round, dec - number of decimal spaces to round to
	var i, factor = 1 ;
	for (i=0 ; i < dec ; i++) {
		factor *= 10 ;
	}
	return((Math.round(num * factor) / factor))
}

function QtyFunky(i,q) {
	var ent = (self.prompt("Enter the new quantity.\n(Enter 0 to delete it.)", q));
	if (ent != null) {
		q = parseInt(ent);
		if (q < 1)
			KillRow(i);
		else if (isNaN(q)) {
			QtyFunky(i,q);
		} else {
			var cnt = gNoRows;
			ReadOrder();
			ord[i].QTY = q ;
			ReCookie();
			populateOrder();
		}
	}
}

function CellWrite(what) {
	document.write("<td>", what, "<"+"/td>");	
}

function KillRow(k) {
	var i, cook="";
	
	for (i=0 ; i < gNoRows ; i++) {
		if (i != k) {
			cook += ord[i].ITEM + ":";
			cook += ord[i].DESC + ":";
			cook += ord[i].willquote ? "willquote:" : ord[i].PRC + ":";
			cook += ord[i].QTY + ":";
			cook += ord[i].FEET + ":";
			cook += ord[i].NOTE + ":";
		}
	}
	SetCookie("MPFOrder", cook);
	ReadOrder();
	populateOrder();
}

function DeleteAll() {
	if (self.confirm("Really delete all items from your order?")) {
		SetCookie("MPFOrder", " ");
		ReadOrder();
		SetCookie("AllOrders", "");
		DeleteCookie("AllOrders");
		myOrder.frames = new Object();
		myOrder.frameCnt = 0;
		frames = new Object();
		populateOrder();
	}
}

function getBaseURL() {
    var url = location.href;  // entire url including querystring - also: window.location.href;
    var baseURL = url.substring(0, url.indexOf('/', 14));


    if (baseURL.indexOf('http://localhost') != -1) {
        // Base Url for localhost
        var url = location.href;  // window.location.href;
        var pathname = location.pathname;  // window.location.pathname;
        var index1 = url.indexOf(pathname);
        var index2 = url.indexOf("/", index1 + 1);
        var baseLocalUrl = url.substr(0, index2);

        return baseLocalUrl + "/";
    }
    else {
        // Root Url for domain name
        return baseURL + "/";
    }

}

function Finalize() {
	if (!CookiesAreEnabled()) {
		alert ("Cookies are not enabled in your browser! This sites ordering functions require cookies to be enabled. Please turn them on in your browser's preferences. Call 1-800-626-3139 if you have any questions. ");
		return;
	}
	if ((myOrder == null || myOrder.frameCnt == 0) && gNoRows == 0) {
		alert ("There are no items in your order. Please add something to your order before finalizing.");
		return;
	}

	var cook = escape(convertFrames2Cook() + ReturnCookie("MPFOrder"));
	//alert(cook);
	var baseURL = getBaseURL();
	var baseSecureURL = '';
	/*if ( baseURL.search(/metroframe-admin.net/) != -1 ){
		baseSecureURL = baseURL;
	}
	else{*/
		baseSecureURL = baseURL.replace('http://','https://');
	//}
        
	var daurl = baseSecureURL+"secure/";
//	var daurl = "https://www.metroframe.com/secure/";// + cook;
//	var daurl = "http://metroframe.nssmgmt.com/secure/";// + cook;
	
	var myform = '<form id="submitOrderForm" action="' + daurl + '" method="post"><input type="hidden" name="order" value="' + cook + '" /></form>';
	setInnerHTMLById(myform, "footer");
	if (f = myGetElementById("submitOrderForm")) {
		f.submit();
	}
	
// 	if (window.opener == null) {
// 		location.href = daurl;
// 	} else {
// 		var dawin = window.opener;
// 		while(dawin.opener != null) {
// 		// find the main window & close pop-wins while we go
// 			var w = dawin.opener;
// 			dawin.close();
// 			dawin = w;
// 		}
// 		dawin.top.location.href = daurl;
// 		self.close();
// 	}
}

var gNoRows;
var anywillquotes = false ;
ord = new Object();
ReadOrder();


