
<!--  Hide from validators.
var zn = 0;               // ZIP, zone entries index
var zzip = new Array ();  // ZIP entry
var zone = new Array ();  // corresponding zone for ZIP

// stuff for shipping support...
var zip="";   // shipping zip code
var wte;      // total weight of order
var zne;      // shipping zone
var amt;      // priority shipping charge
var itmw = 0; // wright of single item (ozs)

// these are the priority mail zone charge tables (1-8) for 9lbs.
var pz1  = new Array (0,  // USPS priority zone one
  10.65);
var pz2  = new Array (0,
  10.65);
var pz3  = new Array (0,
  12.85);
var pz4  = new Array (0, 
  15.00);
var pz5  = new Array (0,
  20.55);
var pz6  = new Array (0,
  22.90);
var pz7  = new Array (0,
  24.90);
var pz8  = new Array (0,
  29.05);
var pzx  = new Array (0,pz1,pz2,pz3,pz4,pz5,pz6,pz7,pz8);


// UPS residential ground, lower 48 charges to 70 lbs. 5 Jan 2004
var uz1  = new Array (0,
  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35);
var uz2  = new Array (0,
  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35);
var uz3  = new Array (0,
  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,
	8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35,  8.35);
var uz4  = new Array (0,
 12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,
 12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,
 12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,
 12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,
 12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,
 12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,
 12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,  12.35,12.35);
var uz5  = new Array (0,
 12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,
 12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,
 12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,
 12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,
 12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,
 12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,
 12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,  12.85,12.85);
var uz6  = new Array (0,
 13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,
 13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,
 13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,
 13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,
 13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,
 13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,
 13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,  13.60,13.60);
var uz7  = new Array (0,
 15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,
 15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,
 15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,
 15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,
 15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,
 15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,
 15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,  15.85,15.85);
var uz8  = new Array (0,
 18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,
 18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,
 18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,
 18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,
 18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,
 18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,
 18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,  18.45,18.45
);
var uzx  = new Array (0,uz1,uz2,uz3,uz4,uz5,uz6,uz7,uz8);

function SetUpsZ () {  // set UPS lower 48 ground Zones
  // built from UPS 94513 zone chart, lower 48
  SetZone (5, 8, 214, 8, 270, 8, 344, 8, 346, 8,
349, 8, 354, 8, 420, 8, 430, 8, 463, 7,
465, 8, 498, 7, 510, 6, 520, 7, 530, 7,
534, 7, 537, 7, 553, 7, 560, 6, 570, 6,
577, 5, 580, 6, 588, 5, 590, 5, 594, 4,
595, 5, 596, 4, 600, 7, 622, 7, 633, 7,
644, 7, 660, 7, 664, 7, 669, 6, 673, 7,
674, 6, 683, 6, 700, 8, 703, 8, 710, 7,
712, 8, 716, 7, 723, 8, 724, 7, 733, 7,
738, 6, 740, 7, 743, 7, 770, 8, 778, 7,
783, 8, 786, 7, 790, 6, 792, 7, 793, 6,
795, 7, 798, 6, 800, 5, 808, 6, 812, 5,
820, 5, 832, 4, 835, 3, 836, 4, 838, 3,
840, 5, 850, 6, 852, 6, 855, 6, 859, 6,
860, 5, 863, 5, 870, 6, 873, 5, 875, 6,
877, 6, 889, 5, 893, 4, 897, 4, 900, 5,
910, 5, 930, 5, 940, 4, 967, 8, 970, 1,
973, 2, 975, 3, 977, 2, 978, 3, 979, 4,
980, 2, 986, 1, 988, 2, 990, 3, 995, 7,
998, 5
  );
}

function CalcCost (obj1) 
{  
	var str = "(error)";
	wte = Math.ceil (itmw / 16.0);  // nearest pounds
	zip = $('zipcode').value;
	if (zip.length == 0) 
	{
		$('ziperror').style.display = "block";
		return false;
	}
	else
	{
		$('ziperror').style.display = "none";
                zip = zip.substr(0, 3);
	}
	//SetUSPSzones(zip);
	SetUpsZ ();     // set up UPS ground shipping zones
	str = "USPS lower-48 shipping data";
	for (var i=zn-1; i>=0; i--) { // run table backwards
	if (zip >= zzip[i]) {       // zip value
	  zne = zone[i];            // corresponding zone
	  break;                    // get out, now
	}
	}
//	amt = uzx[zne][wte];          // UPS charges
	amt = pzx[zne][1];          // USPS charges
	alert (str + "\n\n\n" +
		 "Weight = " + wte + " lbs.\n\n\n" +
		 "ZIP    = " + $('zipcode').value + "\n\n\n" +
		 "Zone   = " + zne + "\n\n\n" +
		 "Charge = " + Dollar (amt) );
	if ($('os0')) $('os0').value = "zone " + zne + ", $" + Dollar(amt)
	+ "/item";
	$('shipping').value = Dollar (amt);
	$('shipping2').value = Dollar (amt);

}

function Dollar (val) {  // force to valid dollar amount
var str,pos,rnd=0;
  if (val < 1) rnd = 1;
  str = escape (val*1.0 + 0.005001 + rnd);  // float, round, escape
  pos = str.indexOf (".");
  if (pos > 0) str = str.substring (rnd, pos + 3);
  return str;
}

function SetZone () {  // record zip/zone info into table
  zn = 0;                      // count of breakpoints
  for (var i=0; i<arguments.length; i=i+2) {
    zzip[zn] = arguments[i];   // zip code index
    zone[zn] = arguments[i+1]; // zone
    zn = zn + 1;               // number of bkpts
  }
}

function SetWt (ozs) {  // set item weight in ounces
  itmw = ozs;
}

function $() {
	var elements = new Array();
	for (var i = 0; i < arguments.length; i++) {
		var element = arguments[i];
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (arguments.length == 1)
			return element;
		elements.push(element);
	}
	return elements;
}

//-->

