// 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 May 14, 2007

// 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 May 12, 2008.
// 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 $21.30.
// The maximum is 16 pounds so starting at 8 boards, use the 16 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( 4.80,   4.80,   5.05,  5.60,   6.80,   7.20,   7.70,    8.25); //
uspsTGTCShipping[2]  = new uspsTGTCCost( 5.80,   5.80,   6.80,  7.85,  10.55,  11.60,  12.65,   14.25); //
uspsTGTCShipping[3]  = new uspsTGTCCost( 7.05,   7.05,   8.65, 10.00,  13.95,  14.40,  16.25,   17.65); //
uspsTGTCShipping[4]  = new uspsTGTCCost( 8.05,   8.05,   9.75, 11.95,  16.40,  17.15,  19.80,   22.60); //
uspsTGTCShipping[5]  = new uspsTGTCCost( 8.85,   8.85,  11.25, 13.45,  18.65,  20.10,  23.45,   27,55); //
uspsTGTCShipping[6]  = new uspsTGTCCost( 9.75,   9.75,  12.35, 15.30,  20.85,  23.45,  26.50,   30.25); //
uspsTGTCShipping[7]  = new uspsTGTCCost(10.35,  10.35,  13.20, 16.45,  23.00,  26.50,  29.15,   32.85); //
uspsTGTCShipping[8]  = new uspsTGTCCost(11.15,  11.15,  14.25, 17.80,  24.20,  27.70,  30.10,   34.40); //
uspsTGTCShipping[9]  = new uspsTGTCCost(11.15,  11.15,  14.25, 17.80,  24.20,  27.70,  30.10,   34.40); //
uspsTGTCShipping[10] = new uspsTGTCCost(11.15,  11.15,  14.25, 17.80,  24.20,  27.70,  30.10,   34.40); //
uspsTGTCShipping[11] = new uspsTGTCCost(11.15,  11.15,  14.25, 17.80,  24.20,  27.70,  30.10,   34.40); //
uspsTGTCShipping[12] = new uspsTGTCCost(11.15,  11.15,  14.25, 17.80,  24.20,  27.70,  30.10,   34.40); //

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 May 14, 2007.
// Unlike the table above, the index in this table represents pounds.
// Example: The rate for a 9 lb, 8 oz. package going to zone 6, would be $18.25.
//
//      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.80,   4.80,   4.80,  4.80,   4.80,   4.80,   4.80,  4.80); //
uspsPriorityMail[2]  = new uspsKKCost( 4.80,   4.80,   5.05,  5.60,   6.80,   7.20,   7.70,  8.25); //
uspsPriorityMail[3]  = new uspsKKCost( 5.20,   5.20,   5.95,  6.75,   8.75,   9.55,  10.35, 11.50); //
uspsPriorityMail[4]  = new uspsKKCost( 5.80,   5.80,   6.80,  7.85,  10.55,  11.60,  12.65, 14.25); //
uspsPriorityMail[5]  = new uspsKKCost( 6.45,   6.45,   7.75,  8.90,  12.20,  13.45,  14.75, 16.80); //
uspsPriorityMail[6]  = new uspsKKCost( 7.05,   7.05,   8.65, 10.00,  13.95,  14.40,  16.25, 17.65); // 
uspsPriorityMail[7]  = new uspsKKCost( 7.60,   7.60,   9.40, 11.00,  15.35,  15.80,  18.05, 20.15); //
uspsPriorityMail[8]  = new uspsKKCost( 8.05,   8.05,   9.75, 11.95,  16.40,  17.15,  19.80, 22.60); //
uspsPriorityMail[9]  = new uspsKKCost( 8.45,   8.45,  10.45, 12.75,  17.50,  18.55,  21.55, 25.15); //
uspsPriorityMail[10] = new uspsKKCost( 8.85,   8.85,  11.25, 13.45,  18.65,  20.10,  23.45, 27.55); //
uspsPriorityMail[11] = new uspsKKCost( 9.35,   9.35,  11.75, 14.50,  19.75,  21.75,  25.20, 29.00); //
uspsPriorityMail[12] = new uspsKKCost( 9.75,   9.75,  12.35, 15.30,  20.85,  23.45,  26.50, 30.25); //
uspsPriorityMail[13] = new uspsKKCost( 10.00, 10.00,  12.65, 15.75,  22.00,  25.15,  27.55, 31.30); //
uspsPriorityMail[14] = new uspsKKCost(10.35,  10.35,  13.20, 16.45,  23.00,  26.50,  29.15, 32.85); //
uspsPriorityMail[15] = new uspsKKCost(10.80,  10.80,  13.80, 17.25,  23.70,  27.10,  29.45, 33.55); // 
uspsPriorityMail[16] = new uspsKKCost(11.15,  11.15,  14.25, 17.80,  24.20,  27.70,  30.10, 34.40); // 
uspsPriorityMail[17] = new uspsKKCost(11.50,  11.50,  14.75, 18.15,  24.80,  28.45,  30.85, 35.30); //
uspsPriorityMail[18] = new uspsKKCost(11.75,  11.75,  15.20, 18.50,  25.30,  29.00,  31.45, 36.15); // 
uspsPriorityMail[19] = new uspsKKCost(12.15,  12.15,  15.55, 18.80,  25.90,  29.70,  32.25, 37.05); //
uspsPriorityMail[20] = new uspsKKCost(12.45,  12.45,  15.80, 19.15,  26.35,  30.25,  32.85, 37.85); //
uspsPriorityMail[21] = new uspsKKCost(12.80,  12.80,  16.00, 19.45,  26.80,  30.75,  33.45, 38.60); //
uspsPriorityMail[22] = new uspsKKCost(13.10,  13.10,  16.30, 19.75,  27.40,  31.45,  34.20, 39.55); //
uspsPriorityMail[23] = new uspsKKCost(13.40,  13.40,  16.50, 20.30,  27.85,  32.00,  34.80, 40.25); //
uspsPriorityMail[24] = new uspsKKCost(13.70,  13.70,  16.70, 20.90,  28.45,  32.65,  35.60, 41.25); //
uspsPriorityMail[25] = new uspsKKCost(14.00,  14.00,  16.95, 21.60,  28.90,  33.15,  36.15, 41.95); //
uspsPriorityMail[26] = new uspsKKCost(14.30,  14.30,  17.15, 22.30,  29.50,  33.90,  36.90, 43.30); //

uspsPriorityMail[27] = new uspsKKCost(14.70,  14.70,  17.40, 22.95,  29.90,  34.40,  37.45, 44.90); //
uspsPriorityMail[28] = new uspsKKCost(15.15,  15.15,  17.60, 23.55,  30.30,  34.85,  38.00, 46.55); //
uspsPriorityMail[29] = new uspsKKCost(15.60,  15.60,  17.80, 24.25,  30.70,  35.30,  38.50, 48.05); //
uspsPriorityMail[30] = new uspsKKCost(16.10,  16.10,  18.05, 24.90,  31.15,  35.80,  39.05, 49.65); //
