// JavaScript Document
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 (lbs)
var itmname = "";
var itmnumber = "";
var itmprice = "";
var the_item_price = "";
var dscntnd = 0;
// FedEx ground, lower 48 charges for 1 to 100 lbs. nov 2008
// FYI uz1 and uz2 are the same and both are zone 2
//
// http://www.fedex.com/ratetools/RateToolsMain.do
// Get Rates for fedEx Service - select ground - excel format
// Get FedEx Zone Locators
var uz1  = new Array (0,
4.20, 4.27, 4.31, 4.43, 4.65, 4.80, 5.05, 5.25, 5.40, 5.59, 
5.78, 5.95, 6.15, 6.28, 6.41, 6.51, 6.58, 6.68, 6.82, 6.96, 
7.12, 7.28, 7.46, 7.63, 7.81, 8.02, 8.21, 8.38, 8.57, 8.78, 
8.95, 9.03, 9.21, 9.38, 9.54, 9.71, 9.89, 10.04, 10.18, 10.34, 
10.50, 10.66, 10.80, 10.94, 11.06, 11.18, 11.30, 11.42, 11.54, 11.66, 
11.78, 11.90, 12.02, 12.14, 12.26, 12.38, 12.50, 12.62, 12.74, 12.86, 
12.99, 13.09, 13.20, 13.31, 13.42, 13.53, 13.64, 13.75, 13.86, 13.97, 
14.55, 15.28, 16.04, 16.79, 17.55, 18.30, 19.06, 19.82, 20.57, 21.33, 
21.88, 22.63, 23.40, 24.17, 24.95, 25.75, 26.55, 27.38, 28.21, 29.04, 
29.75, 30.47, 31.19, 31.93, 32.67, 33.41, 34.17, 34.94, 35.72, 36.49, 
37.12, 37.76, 38.40, 39.02, 39.67, 40.32, 40.99, 41.65, 42.30, 42.99, 
43.46, 43.92, 44.39, 44.86, 45.35, 45.82, 46.28, 46.77, 47.25, 47.74, 
48.22, 48.70, 49.19, 49.68, 50.16, 50.66, 51.14, 51.65, 52.13, 52.63, 
53.14, 53.63, 54.14, 54.63, 55.13, 55.64, 56.14, 56.65, 57.15, 57.67, 
58.18, 58.69, 59.21, 59.73, 60.24, 60.76, 61.28, 61.79, 62.31, 62.85);
var uz2  = new Array (0,
4.20, 4.27, 4.31, 4.43, 4.65, 4.80, 5.05, 5.25, 5.40, 5.59, 
5.78, 5.95, 6.15, 6.28, 6.41, 6.51, 6.58, 6.68, 6.82, 6.96, 
7.12, 7.28, 7.46, 7.63, 7.81, 8.02, 8.21, 8.38, 8.57, 8.78, 
8.95, 9.03, 9.21, 9.38, 9.54, 9.71, 9.89, 10.04, 10.18, 10.34, 
10.50, 10.66, 10.80, 10.94, 11.06, 11.18, 11.30, 11.42, 11.54, 11.66, 
11.78, 11.90, 12.02, 12.14, 12.26, 12.38, 12.50, 12.62, 12.74, 12.86, 
12.99, 13.09, 13.20, 13.31, 13.42, 13.53, 13.64, 13.75, 13.86, 13.97, 
14.55, 15.28, 16.04, 16.79, 17.55, 18.30, 19.06, 19.82, 20.57, 21.33, 
21.88, 22.63, 23.40, 24.17, 24.95, 25.75, 26.55, 27.38, 28.21, 29.04, 
29.75, 30.47, 31.19, 31.93, 32.67, 33.41, 34.17, 34.94, 35.72, 36.49, 
37.12, 37.76, 38.40, 39.02, 39.67, 40.32, 40.99, 41.65, 42.30, 42.99, 
43.46, 43.92, 44.39, 44.86, 45.35, 45.82, 46.28, 46.77, 47.25, 47.74, 
48.22, 48.70, 49.19, 49.68, 50.16, 50.66, 51.14, 51.65, 52.13, 52.63, 
53.14, 53.63, 54.14, 54.63, 55.13, 55.64, 56.14, 56.65, 57.15, 57.67, 
58.18, 58.69, 59.21, 59.73, 60.24, 60.76, 61.28, 61.79, 62.31, 62.85);
var uz3  = new Array (0,
4.32, 4.54, 4.75, 4.92, 5.00, 5.17, 5.33, 5.51, 5.67, 5.71, 
5.98, 6.18, 6.38, 6.58, 6.79, 6.92, 7.15, 7.38, 7.62, 7.87, 
8.12, 8.36, 8.61, 8.83, 9.07, 9.29, 9.50, 9.73, 9.95, 10.20, 
10.41, 10.63, 10.87, 11.11, 11.37, 11.57, 11.83, 12.05, 12.28, 12.55, 
12.76, 12.99, 13.22, 13.44, 13.68, 13.90, 14.10, 14.30, 14.48, 14.65, 
14.78, 14.91, 15.07, 15.20, 15.33, 15.47, 15.63, 15.80, 15.97, 16.14, 
16.29, 16.42, 16.58, 16.75, 16.94, 17.15, 17.33, 17.50, 17.67, 17.84, 
18.31, 19.01, 19.70, 20.39, 21.08, 21.78, 22.47, 23.16, 23.86, 24.55, 
25.14, 25.75, 26.38, 27.05, 27.71, 28.38, 29.05, 29.72, 30.38, 31.04, 
31.72, 32.38, 33.04, 33.70, 34.37, 35.03, 35.69, 36.27, 36.85, 37.45, 
38.04, 38.63, 39.24, 39.83, 40.45, 41.06, 41.69, 42.30, 42.92, 43.56, 
44.06, 44.55, 45.07, 45.58, 46.10, 46.61, 47.12, 47.64, 48.17, 48.68, 
49.21, 49.73, 50.25, 50.79, 51.32, 51.85, 52.38, 52.93, 53.47, 54.00, 
54.55, 55.10, 55.65, 56.19, 56.75, 57.29, 57.85, 58.40, 58.97, 59.54, 
60.09, 60.66, 61.22, 61.78, 62.36, 62.92, 63.51, 64.07, 64.65, 65.24);
var uz4  = new Array (0,
4.46, 4.99, 5.24, 5.50, 5.76, 5.86, 6.00, 6.16, 6.29, 6.44, 
6.56, 6.71, 6.82, 6.96, 7.08, 7.19, 7.41, 7.65, 7.94, 8.22, 
8.48, 8.78, 9.07, 9.37, 9.66, 9.95, 10.24, 10.56, 10.87, 11.20, 
11.49, 11.80, 12.10, 12.39, 12.70, 12.97, 13.26, 13.56, 13.86, 14.16, 
14.44, 14.72, 15.02, 15.27, 15.55, 15.78, 16.03, 16.28, 16.52, 16.74, 
16.97, 17.18, 17.38, 17.61, 17.78, 17.98, 18.17, 18.38, 18.59, 18.80, 
19.00, 19.17, 19.35, 19.55, 19.78, 20.00, 20.20, 20.39, 20.58, 20.78, 
20.93, 21.28, 21.78, 22.45, 23.10, 23.75, 24.40, 25.05, 25.70, 26.35, 
27.00, 27.65, 28.30, 28.92, 29.53, 30.16, 30.88, 31.51, 32.12, 32.74, 
33.48, 34.10, 34.83, 35.44, 36.16, 36.89, 37.51, 38.23, 38.96, 39.68, 
40.40, 40.89, 41.40, 41.91, 42.41, 42.92, 43.43, 43.94, 44.44, 44.97, 
45.49, 46.00, 46.53, 47.04, 47.58, 48.11, 48.62, 49.16, 49.69, 50.23, 
50.76, 51.30, 51.85, 52.39, 52.93, 53.48, 54.03, 54.58, 55.14, 55.67, 
56.24, 56.80, 57.36, 57.93, 58.49, 59.06, 59.62, 60.19, 60.76, 61.33, 
61.91, 62.48, 63.07, 63.65, 64.23, 64.81, 65.41, 65.99, 66.58, 67.18);
var uz5  = new Array (0,
4.65, 5.08, 5.42, 5.78, 6.05, 6.23, 6.45, 6.60, 6.77, 6.96, 
7.11, 7.27, 7.44, 7.61, 7.79, 7.94, 8.27, 8.69, 9.09, 9.51,
9.91, 10.28, 10.66, 11.01, 11.34, 11.71, 12.07, 12.44, 12.80, 13.18, 
13.54, 13.92, 14.30, 14.67, 15.04, 15.41, 15.78, 16.16, 16.52, 16.90, 
17.27, 17.64, 18.02, 18.39, 18.76, 19.10, 19.45, 19.78, 20.12, 20.42, 
20.73, 21.01, 21.29, 21.57, 21.88, 22.19, 22.51, 22.75, 22.97, 23.14, 
23.40, 23.60, 23.80, 23.98, 24.14, 24.30, 24.44, 24.58, 24.72, 24.86, 
25.25, 25.70, 26.35, 27.05, 27.74, 28.39, 29.04, 29.69, 30.34, 30.99, 
31.44, 32.06, 32.69, 33.32, 33.94, 34.58, 35.20, 35.83, 36.45, 36.95, 
37.58, 38.09, 38.71, 39.21, 39.83, 40.44, 41.07, 41.57, 42.09, 42.71, 
43.32, 43.90, 44.37, 44.84, 45.33, 45.80, 46.29, 46.77, 47.25, 47.73, 
48.21, 48.70, 49.18, 49.67, 50.16, 50.66, 51.13, 51.62, 52.11, 52.61, 
53.10, 53.59, 54.08, 54.59, 55.07, 55.58, 56.07, 56.57, 57.08, 57.56, 
58.08, 58.57, 59.07, 59.59, 60.08, 60.59, 61.09, 61.61, 62.12, 62.63, 
63.13, 63.64, 64.16, 64.66, 65.19, 65.69, 66.21, 66.73, 67.24, 67.76);
var uz6  = new Array (0,
4.89, 5.45, 5.82, 6.16, 6.44, 6.63, 6.86, 7.08, 7.25, 7.56, 
7.88, 8.24, 8.64, 9.12, 9.60, 9.97, 10.47, 10.98, 11.47, 11.97, 
12.47, 12.97, 13.46, 13.97, 14.47, 15.00, 15.51, 16.01, 16.53, 17.06, 
17.55, 18.05, 18.52, 19.03, 19.52, 20.00, 20.45, 20.91, 21.37, 21.83, 
22.28, 22.71, 23.14, 23.55, 23.96, 24.33, 24.67, 25.03, 25.36, 25.69, 
26.00, 26.32, 26.62, 26.94, 27.26, 27.57, 27.87, 28.18, 28.44, 28.68, 
28.94, 29.15, 29.33, 29.54, 29.80, 30.10, 30.34, 30.50, 30.66, 30.82, 
31.10, 31.62, 32.22, 32.82, 33.42, 34.01, 34.61, 35.21, 35.81, 36.41, 
36.90, 37.37, 37.95, 38.53, 39.10, 39.66, 40.17, 40.70, 41.21, 41.73, 
42.25, 42.77, 43.28, 43.80, 44.30, 44.84, 45.36, 45.88, 46.40, 46.91, 
47.43, 47.94, 48.44, 48.94, 49.43, 49.93, 50.43, 50.93, 51.42, 51.94, 
52.43, 52.93, 53.43, 53.94, 54.44, 54.95, 55.45, 55.95, 56.46, 56.96, 
57.48, 57.97, 58.49, 59.00, 59.50, 60.02, 60.53, 61.04, 61.55, 62.05, 
62.57, 63.09, 63.59, 64.11, 64.62, 65.13, 65.65, 66.17, 66.68, 67.20, 
67.72, 68.23, 68.75, 69.27, 69.79, 70.30, 70.83, 71.35, 71.86, 72.39);
var uz7  = new Array (0,
4.97, 5.58, 6.01, 6.36, 6.69, 6.95, 7.20, 7.53, 7.94, 8.51, 
9.12, 9.73, 10.35, 10.95, 11.56, 12.06, 12.65, 13.22, 13.80, 14.39, 
14.96, 15.55, 16.12, 16.69, 17.26, 17.83, 18.40, 18.97, 19.54, 20.11, 
20.68, 21.25, 21.82, 22.39, 22.96, 23.53, 24.10, 24.67, 25.24, 25.81, 
26.38, 26.95, 27.52, 28.09, 28.66, 29.23, 29.80, 30.37, 30.94, 31.51, 
32.05, 32.55, 32.95, 33.25, 33.50, 33.75, 34.00, 34.20, 34.40, 34.60, 
34.80, 35.00, 35.23, 35.47, 35.66, 35.83, 36.00, 36.20, 36.40, 36.60, 
36.70, 37.20, 37.85, 38.51, 39.20, 39.93, 40.67, 41.36, 41.95, 42.53, 
43.12, 43.71, 44.30, 44.85, 45.34, 45.82, 46.30, 46.78, 47.27, 47.73, 
48.21, 48.74, 49.25, 49.78, 50.30, 50.81, 51.34, 51.86, 52.38, 52.90, 
53.42, 53.94, 54.47, 54.98, 55.51, 56.02, 56.54, 57.06, 57.57, 58.10, 
58.61, 59.14, 59.65, 60.16, 60.69, 61.20, 61.72, 62.24, 62.76, 63.27, 
63.79, 64.30, 64.82, 65.34, 65.85, 66.37, 66.88, 67.39, 67.91, 68.43, 
68.95, 69.46, 69.98, 70.49, 71.00, 71.52, 72.02, 72.54, 73.05, 73.57, 
74.08, 74.59, 75.11, 75.62, 76.13, 76.64, 77.15, 77.67, 78.17, 78.69);
var uz8  = new Array (0,
5.08, 5.85, 6.50, 6.92, 7.34, 7.59, 7.95, 8.45, 9.00, 9.61, 
10.30, 11.05, 11.80, 12.55, 13.30, 13.93, 14.62, 15.36, 16.10, 16.85, 
17.59, 18.35, 19.10, 19.84, 20.58, 21.32, 22.06, 22.83, 23.60, 24.36, 
25.09, 25.85, 26.58, 27.32, 28.03, 28.70, 29.25, 29.80, 30.35, 30.90, 
31.45, 32.00, 32.55, 33.10, 33.65, 34.20, 34.75, 35.30, 35.85, 36.40, 
36.95, 37.50, 38.05, 38.60, 39.15, 39.70, 40.20, 40.60, 40.90, 41.15, 
41.40, 41.65, 41.90, 42.15, 42.40, 42.71, 42.82, 42.92, 43.03, 43.13, 
43.28, 43.48, 43.68, 43.88, 44.08, 44.28, 44.48, 44.80, 45.35, 45.89, 
46.44, 46.97, 47.51, 48.04, 48.58, 49.12, 49.65, 50.21, 50.76, 51.29, 
51.84, 52.40, 52.93, 53.49, 54.04, 54.58, 55.15, 55.68, 56.24, 56.79, 
57.32, 57.87, 58.39, 58.94, 59.45, 60.00, 60.54, 61.07, 61.61, 62.15, 
62.67, 63.19, 63.71, 64.24, 64.77, 65.29, 65.83, 66.34, 66.87, 67.41, 
67.93, 68.48, 69.01, 69.54, 70.07, 70.62, 71.14, 71.69, 72.22, 72.76, 
73.29, 73.82, 74.36, 74.90, 75.43, 75.98, 76.52, 77.05, 77.58, 78.13, 
78.67, 79.20, 79.74, 80.27, 80.81, 81.33, 81.88, 82.42, 82.95, 83.49);
var uzx  = new Array (0,uz1,uz2,uz3,uz4,uz5,uz6,uz7,uz8);

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

function SetFedExZ () {  // set FedEx lower 48 ground Zones verified on 11/15/2008
  SetZone (
    0, 8, 
	  4, 8, 
	242, 7, 
	244, 8, 
	246, 7, 
	249, 8, 
	250, 7, 
	254, 8, 
	255, 7, 
	262, 8, 
	266, 7, 
  267, 8, 
	280, 7, 
	283, 8, 
	286, 7, 
	294, 8, 
	296, 7, 
	327, 8, 
	337, 7, 
	338, 8, 
	344, 7, 
  346, 8, 
	350, 7, 
	365, 6, 
	367, 7, 
	369, 6, 
	370, 7, 
	375, 6, 
	376, 7, 
	380, 6, 
	384, 7, 
  386, 6, 
	398, 7, 
	420, 6, 
	421, 7, 
	424, 6, 
	425, 7, 
	476, 6, 
	478, 7, 
	500, 6, 
	530, 7, 
  535, 6, 
	539, 7, 
	540, 6, 
	541, 7, 
	546, 6, 
	549, 7, 
	550, 6, 
	575, 5, 
	576, 6, 
	577, 5, 
  580, 6, 
	590, 5, 
	592, 6, 
	593, 5, 
	595, 6, 
	596, 5, 
	599, 6, 
	600, 7, 
	610, 6, 
	664, 5, 
  667, 6, 
	668, 5, 
	680, 6, 
	683, 5, 
	687, 6, 
	688, 5, 
	700, 6, 
	730, 5, 
	749, 6, 
	750, 5, 
  755, 6, 
	757, 5, 
	759, 6, 
	760, 5, 
	770, 6, 
	778, 5, 
	790, 4, 
	792, 5, 
	793, 4, 
	795, 5, 
  797, 4, 
	807, 5, 
	808, 4, 
	820, 5, 
	829, 4, 
	832, 5, 
	838, 6, 
	840, 4, 
	850, 2, 
	864, 3, 
  870, 4, 
	873, 3, 
	874, 4, 
	879, 3, 
	880, 4, 
	889, 3, 
	893, 4, 
	919, 3, 
	926, 4, 
	940, 5, 
  950, 4, 
	954, 5, 
	961, 4, 
	962, 5, 
	970, 6, 
	973, 5, 
	980, 6, 
	987, 5, 
	988, 6, 
	993, 5);
}

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
// http://www.fedex.com/us/rates2008/surcharges/ Residential Delivery Charge
// http://www.fedex.com/us/services/fuelsurcharge.html
function Dollar (val) {  // force to valid dollar amount
  var str,pos,rnd=0;
  if (val < 1) rnd = 1;
    val = val + 2.30; // add for residential 
		val = val*1.0675; //fuel surcharge 
    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
  }
}

//~~~~~~~Search though the cookie variables and return the value of the indicated "cookie_name"~~~~~~~~~~

function get_cookie ( cookie_name ) {
  var results = document.cookie.match ( cookie_name + '=(.*?)(;|$)' );
  if ( results )
    return ( unescape ( results[1] ) );
  else
    return null;
}

