// This USPS web site shows the zone table for any ZIP origin.
// Use the recipient's first three ZIP digits to determine the zone.
// http://postcalc.usps.gov/zonecharts/default.asp
// All this stuff is based upon the zones, rates, etc. in effect January 1, 2011

// This array represents the first three digits of all zip codes to
// which we can ship USPS Priority Mail. 
// There are 147... (0-146) entries in this table.
usps797ZipArray = new Array
(
    5,  6, 10, 14, 54, 55, 56, 57, 60,150,
  155,156,157,160,166,167,168,214,228,230,
  239,254,255,267,268,270,278,280,285,286,
  307,308,324,326,344,346,349,350,354,376,
  380,398,420,425,430,474,479,500,520,530,
  534,537,540,541,546,547,550,553,556,559,
  563,570,580,590,593,594,610,622,633,644,
  660,664,667,668,669,680,683,690,691,700,
  703,705,706,707,710,713,716,718,719,723,
  726,733,734,735,736,743,747,748,750,760,
  768,769,770,780,783,786,793,797,798,800,
  820,821,822,835,840,850,852,855,859,863,
  864,865,870,877,878,884,885,889,893,894,
  897,898,900,910,930,931,932,934,935,936,
  967,970,975,980,988,990,995
  );

// This array represents the USPS Zone numbers from ZIP code 79701 (Midland, TX)
// and that correlate to the ZIP codes in the table above and from. 
usps797ZoneArray = new Array
(   
  7,8,7,8,7,8,7,8,7,6,
  7,6,7,6,7,6,7,7,6,7,
  6,7,6,7,6,6,7,6,7,6,
  5,6,5,6,6,6,6,5,5,6,
  5,6,5,6,6,5,6,5,5,6,
  6,6,5,6,5,6,5,5,6,5,
  6,5,6,6,5,6,5,5,5,5,
  5,5,4,5,4,5,5,4,5,5,
  5,4,4,5,4,4,4,4,4,5,
  4,3,4,3,4,4,4,4,4,3,
  2,1,4,3,4,3,2,1,3,4,
  5,6,5,6,5,4,4,4,4,4,
  5,4,4,4,3,3,3,5,5,6,
  6,5,5,5,5,6,5,6,5,6,
  8,7,6,7,7,6,8  
);

// There are 163... (0-162) entries in this table.  
usps760ZipArray = new Array
(
    5,  6, 10, 68,120,130,214,242,243,246,
  254,255,260,261,262,266,267,270,280,283,
  286,294,295,325,326,330,335,340,341,344,
  346,349,350,354,356,359,360,365,367,369,
  370,375,376,380,385,386,398,420,421,430,
  439,448,484,488,496,498,508,509,515,520,
  530,534,537,553,567,570,580,582,584,587,
  590,600,620,622,624,628,633,644,660,664,
  683,686,688,692,700,703,706,707,710,713,
  716,718,719,723,727,733,734,736,739,740,
  743,745,746,747,748,750,755,756,759,760,
  763,764,765,769,778,779,783,786,795,797,
  798,800,808,812,820,821,822,832,838,840,
  850,852,855,859,863,870,873,875,877,884,
  885,889,893,897,900,910,930,940,942,943,
  950,954,956,959,961,962,967,970,979,980,
  988,994,995
  );  
  
// This array represents the USPS Zone numbers from ZIP code 76008 (Aledo, TX)
// and that correlate to the ZIP codes in the table above and from. 
usps760ZoneArray = new Array
(   
  6,8,7,6,7,6,6,5,6,5,
  6,5,6,5,6,5,6,6,5,6,
  5,6,5,4,5,6,5,6,5,5,
  5,6,4,4,5,4,5,4,5,4,
  5,4,5,4,5,4,5,4,5,5,
  6,5,6,5,6,5,4,5,4,5,
  5,5,5,5,6,5,5,6,5,6,
  6,5,4,4,5,4,4,4,4,4,
  4,5,4,5,4,4,3,4,3,3,
  3,3,3,4,3,3,2,3,4,3,
  3,2,3,2,3,1,3,2,3,1,
  2,1,2,3,2,3,4,3,2,3,
  4,5,4,5,5,6,5,6,7,5,
  5,5,5,5,5,4,5,4,4,4,
  4,6,6,6,6,6,6,7,6,7,
  6,7,6,7,6,7,8,7,6,7,
  7,6,8  
);

function uspsTGTCCost(zone1,zone2,zone3,zone4,zone5,zone6,zone7,zone8)
{
  this.zone1 = zone1;
  this.zone2 = zone2;
  this.zone3 = zone3;
  this.zone4 = zone4;
  this.zone5 = zone5;
  this.zone6 = zone6;
  this.zone7 = zone7;
  this.zone8 = zone8;
}

// This table is based upon USPS Priority Mail rates effective January 1, 2011.
// The index represents the number boards being shipped and assumes all boards weigh 2 pounds.
// Example: The rate for a 3 boards going to zone 6, would be $16.65.
// The maximum is 14 pounds so starting at 7 boards, use the 14 pound rate.
//
//      zone                                1       2       3       4      5       6       7        8 
//
var uspsTGTCShipping = new Object();
uspsTGTCShipping[0]  = new uspsTGTCCost(    0,      0,      0,     0,      0,      0,      0,       0);
uspsTGTCShipping[1]  = new uspsTGTCCost( 5.00,   5.00,   5.35,  5.95,   7.50,   8.10,   8.60,    9.55); //
uspsTGTCShipping[2]  = new uspsTGTCCost( 6.45,   6.45,   7.55,  8.60,  11.90,  13.00,  13.80,   15.30); //
uspsTGTCShipping[3]  = new uspsTGTCCost( 8.30,   8.30,   9.65, 11.00,  15.05,  16.65,  17.80,   19.90); //
uspsTGTCShipping[4]  = new uspsTGTCCost( 9.60,   9.60,  11.45, 13.30,  18.20,  20.20,  22.05,   25.10); //
uspsTGTCShipping[5]  = new uspsTGTCCost(10.90,  10.90,  13.25, 15.70,  21.35,  23.75,  26.30,   30.40); //
uspsTGTCShipping[6]  = new uspsTGTCCost(12.50,  12.50,  15.20, 18.15,  24.70,  27.75,  31.40,   35.85); //
uspsTGTCShipping[7]  = new uspsTGTCCost(14.05,  14.05,  17.10, 20.35,  27.80,  31.40,  34.50,   38.95); //
uspsTGTCShipping[8]  = new uspsTGTCCost(14.05,  14.05,  17.10, 20.35,  27.80,  31.40,  34.50,   38.95); //
uspsTGTCShipping[9]  = new uspsTGTCCost(14.05,  14.05,  17.10, 20.35,  27.80,  31.40,  34.50,   38.95); //
uspsTGTCShipping[10] = new uspsTGTCCost(14.05,  14.05,  17.10, 20.35,  27.80,  31.40,  34.50,   38.95); //
uspsTGTCShipping[11] = new uspsTGTCCost(14.05,  14.05,  17.10, 20.35,  27.80,  31.40,  34.50,   38.95); //
uspsTGTCShipping[12] = new uspsTGTCCost(14.05,  14.05,  17.10, 20.35,  27.80,  31.40,  34.50,   38.95); //

function uspsKKCost(zone1,zone2,zone3,zone4,zone5,zone6,zone7,zone8)
{
  this.zone1 = zone1;
  this.zone2 = zone2;
  this.zone3 = zone3;
  this.zone4 = zone4;
  this.zone5 = zone5;
  this.zone6 = zone6;
  this.zone7 = zone7;
  this.zone8 = zone8;
}

// This table is based upon USPS Priority Mail rates effective January 1, 2011.
// Unlike the table above, the index in this table represents pounds.
// Example: The rate for a 9 lb. package going to zone 6, would be $22.00.
//
//      zone                             1       2       3       4      5       6       7        8 
//
var uspsPriorityMail = new Object();
uspsPriorityMail[0]  = new uspsKKCost(    0,      0,      0,     0,      0,      0,      0,     0);
uspsPriorityMail[1]  = new uspsKKCost( 4.90,   4.90,   4.95,  5.05,   5.15,   5.25,   5.35,  5.55); //
uspsPriorityMail[2]  = new uspsKKCost( 5.00,   5.00,   5.35,  5.95,   7.50,   8.10,   8.60,  9.55); //
uspsPriorityMail[3]  = new uspsKKCost( 5.70,   5.70,   6.55,  7.50,   9.00,   9.95,  10.70, 12.70); //
uspsPriorityMail[4]  = new uspsKKCost( 6.45,   6.45,   7.55,  8.60,  11.90,  13.00,  13.80, 15.30); //
uspsPriorityMail[5]  = new uspsKKCost( 7.65,   7.65,   8.75,  9.85,  13.50,  14.85,  15.85, 17.65); //
uspsPriorityMail[6]  = new uspsKKCost( 8.30,   8.30,   9.65, 11.00,  15.05,  16.65,  17.80, 19.90); // 
uspsPriorityMail[7]  = new uspsKKCost( 8.95,   8.95,  10.55, 11.75,  16.80,  18.40,  20.05, 22.40); //
uspsPriorityMail[8]  = new uspsKKCost( 9.60,   9.60,  11.45, 13.30,  18.20,  20.20,  22.05, 25.10); //
uspsPriorityMail[9]  = new uspsKKCost(10.25,  10.25,  12.35, 14.40,  19.75,  22.00,  23.95, 27.95); //
uspsPriorityMail[10] = new uspsKKCost(10.90,  10.90,  13.25, 15.70,  21.35,  23.75,  26.30, 30.40); //
uspsPriorityMail[11] = new uspsKKCost(11.70,  11.70,  14.20, 16.90,  23.05,  25.55,  29.05, 33.35); //
uspsPriorityMail[12] = new uspsKKCost(12.50,  12.50,  15.20, 18.15,  24.70,  27.75,  31.40, 35.85); //
uspsPriorityMail[13] = new uspsKKCost(13.25,  13.25,  16.15, 19.20,  26.15,  29.75,  32.65, 37.10); //
uspsPriorityMail[14] = new uspsKKCost(14.05,  14.05,  17.10, 20.35,  27.80,  31.40,  34.50, 38.95); //
uspsPriorityMail[15] = new uspsKKCost(14.65,  14.65,  18.10, 21.50,  29.40,  32.80,  35.25, 40.05); // 
uspsPriorityMail[16] = new uspsKKCost(15.10,  15.10,  19.05, 22.65,  31.00,  34.60,  37.20, 42.30); // 
uspsPriorityMail[17] = new uspsKKCost(15.65,  15.65,  20.00, 23.85,  32.65,  36.40,  39.15, 44.55); //
uspsPriorityMail[18] = new uspsKKCost(15.95,  15.95,  20.65, 25.00,  34.25,  38.25,  41.10, 46.80); // 
uspsPriorityMail[19] = new uspsKKCost(16.45,  16.45,  21.10, 25.50,  35.15,  40.05,  43.05, 49.00); //
uspsPriorityMail[20] = new uspsKKCost(16.85,  16.85,  21.40, 25.95,  35.75,  41.05,  44.60, 51.25); //
uspsPriorityMail[21] = new uspsKKCost(17.35,  17.35,  21.70, 26.35,  36.35,  41.70,  45.35, 52.40); //
uspsPriorityMail[22] = new uspsKKCost(17.75,  17.75,  22.15, 26.80,  37.15,  42.65,  46.45, 53.70); //
uspsPriorityMail[23] = new uspsKKCost(18.15,  18.15,  22.40, 27.55,  37.80,  43.40,  47.20, 54.65); //
uspsPriorityMail[24] = new uspsKKCost(18.60,  18.60,  22.65, 28.40,  38.60,  44.30,  48.30, 56.00); //
uspsPriorityMail[25] = new uspsKKCost(19.00,  19.00,  23.00, 29.30,  39.25,  44.95,  49.05, 56.95); //
uspsPriorityMail[26] = new uspsKKCost(19.40,  19.40,  23.25, 30.25,  40.05,  46.00,  50.10, 58.75); //
uspsPriorityMail[27] = new uspsKKCost(19.95,  19.95,  23.60, 31.15,  40.60,  46.65,  50.80, 60.95); //
uspsPriorityMail[28] = new uspsKKCost(20.55,  20.55,  23.90, 32.00,  41.10,  47.30,  51.55, 63.20); //
uspsPriorityMail[29] = new uspsKKCost(21.20,  21.20,  24.15, 32.90,  41.65,  47.90,  52.25, 64.90); //
uspsPriorityMail[30] = new uspsKKCost(21.85,  21.85,  24.50, 33.65,  42.25,  48.55,  53.00, 66.35); //

