			var req;
			var weighter;
			function getSize(obj) {
				var size = obj.options[obj.selectedIndex].value;
				var code = new String(obj.name);
				code = code.replace("size", "");
				weighter = document.getElementById("w"+code);
				ajaxSize(size,code,obj);
			}
			function ajaxSize(size, code, obj) {
				req = false;
				//native request
				if (window.XMLHttpRequest) {
					try {
						req = new XMLHttpRequest();
					} catch(e) {
						req = false;
					}
				//ie branchy
				} else if (window.ActiveXObject) {
					try {
						req = new ActiveXObject("Msxml2.XMLHTTP");
					} catch(e) {
						try {
							req = new ActiveXObject("Microsoft.XMLHTTP");
						} catch(e) {
							req = false;
						}
					}
				}
				if (req) {
					req.onreadystatechange = processSizeChange;
					var url = "/getsize.aspx?size="+size+"&code="+code;
					req.open("GET", url, true);
					req.send("");
				}
			}
			function processSizeChange() {
				if (req.readyState == 4) {
					if (req.status == 200) {
						//success
						weighter.innerHTML = req.responseText;
						weighter = null;
						calCart();
					} else {
						//do nothing
					}
				}
			}
			function getShipCost() {
				var z = document.getElementById("zip");
				var w = document.getElementById("sweight");
				var s = document.getElementById("UPSservicecode");
				var sc = s.options[s.selectedIndex].value;
				var zval = z.value;
				var wval = w.value;
				if ((isNaN(parseInt(zval))) && (zval != "")) {
					alert("Zip code must be a 5 digit number");
					z.focus();
				} else {
					if ((zval != "") && (wval != "") && (wval != 0)){
						getShipped(zval,wval,sc);
					}
				}
			}
			function getShipped(zip,weight,code) {
			
				req = false;
				//native request
				if (window.XMLHttpRequest) {
					try {
						req = new XMLHttpRequest();
					} catch(e) {
						req = false;
					}
				//ie branchy
				} else if (window.ActiveXObject) {
					try {
						req = new ActiveXObject("Msxml2.XMLHTTP");
					} catch(e) {
						try {
							req = new ActiveXObject("Microsoft.XMLHTTP");
						} catch(e) {
							req = false;
						}
					}
				}
				if (req) {
					var wait = document.getElementById("waiter");
					wait.innerHTML = "Getting shipping estimate...";
					req.onreadystatechange = processReqChange;
					var url = "/fedexajax.aspx?zip="+zip+"&s_weight="+weight+"&svccode="+code;
					req.open("GET", url, true);
					req.send("");
				}
			}
			
			function processReqChange() {
				var wait = document.getElementById("waiter");
				wait.innerHTML = "Getting shipping estimate...";
				if (req.readyState == 4) {
					if (req.status == 200) {
						wait.innerHTML = "";
						var sc = req.responseText;
						var t = sc.charAt(0);
						if (t == "S") {
							alert(req.responseText);
							sc = 0;
						}
							//success
							var ds = document.getElementById("dsign");
							ds.innerHTML = "$";
							var sEst = document.getElementById("se");
							
							var shp = sc*1;
							sEst.innerHTML =  CurrencyFormatted(shp);
							
							var subTot = document.getElementById("st");
							var sbtl = subTot.innerHTML;
							var subtt = sbtl*1;
							dsa = subtt+shp;
							
							var cTot = document.getElementById("tt");
							cTot.innerHTML = CurrencyFormatted(dsa);
							var crt = document.getElementById("carty");
							crt.innerHTML = "$"+CurrencyFormatted(dsa);
						
					} else {
						//alert(req.responseText);
					}
				}
			}
			function calCart() {
				var ctable = document.getElementById("ctable");
				cRows = ctable.getElementsByTagName("TR");
				var sub_total = 0;
				var quan_all = 0;
				var gweight = 0;
				for (z=0; z<cRows.length; z++) {
					for (i=0; i<cRows[z].childNodes.length; i++) {
						
						for (j=0; j<cRows[z].childNodes[i].childNodes.length; j++) {
							c = cRows[z].childNodes[i].childNodes[j].tagName;
							e = cRows[z].childNodes[i].childNodes[j].className;
							cid = cRows[z].childNodes[i].childNodes[j].id;
							
							if ((c == "SELECT") && (e == "qs")) {
								quan = cRows[z].childNodes[i].childNodes[j].options[cRows[z].childNodes[i].childNodes[j].selectedIndex].value;
								quan_all = quan_all + quan;
							}
							if ((c == "SPAN") && (e == "price")) {
								price = cRows[z].childNodes[i].childNodes[j].innerHTML;
							}
							if ((c == "SPAN") && (e == "subtotal")) {
								subt = price*quan;
								stf = CurrencyFormatted(price*quan);
								cRows[z].childNodes[i].childNodes[j].innerHTML = stf;
								sub_total += subt;
							}
							
							if ((c == "SPAN") && (e == "weight")) {
								nweight = cRows[z].childNodes[i].childNodes[j].innerHTML;
								gweight += nweight*quan;
							}
						}
					}
			}
			
			var gw = gweight;
			var qa = document.getElementById("sweight");
			qa.value = gw;
			var st = document.getElementById("st");
			st.innerHTML = CurrencyFormatted(sub_total);
			var z = document.getElementById("zip");
			getShipCost();
			var shipcost = document.getElementById("se").innerHTML;
			var tt = document.getElementById("tt");
			if ((shipcost > 0) && (gw > 0)){
				var sc = shipcost*1;
			} else {
				var sc = 0;
				document.getElementById("se").innerHTML = "0.00";
			}
			
			var subt = sub_total*1;
			dsa = subt+sc;
			tt.innerHTML = CurrencyFormatted(dsa);
			var crt = document.getElementById("carty");
			crt.innerHTML = "$"+CurrencyFormatted(dsa);
			
		}
	function CurrencyFormatted(amount) {
		var i = parseFloat(amount);
		if(isNaN(i)) { i = 0.00; }
		var minus = '';
		if(i < 0) { minus = '-'; }
		i = Math.abs(i);
		i = parseInt((i + .005) * 100);
		i = i / 100;
		s = new String(i);
		if(s.indexOf('.') < 0) { s += '.00'; }
		if(s.indexOf('.') == (s.length - 2)) { s += '0'; }
		s = minus + s;
		return s;
	}