
var delivery = {
    zone_UK:{
        next_day: {
            name: "Next Day",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 15.25
                    }
                },
                pack: {
                    weight: {
                        "0.5": 15.25,
                        "1.0": 15.25,
                        "1.5": 15.25,
                        "2.0": 15.25,
                        "2.5": 15.25
                    }
                },
                box: {
                    weight: {
                        "0.5": 15.25,
                        "1.0": 15.25,
                        "1.5": 15.25,
                        "2.0": 15.25,
                        "2.5": 15.25,
                        "3.0": 15.25,
                        "3.5": 15.25,
                        "4.0": 15.25,
                        "4.5": 15.25,
                        "5.0": 15.25,
                        "6.0": 16.75,
                        "7.0": 18.25,
                        "8.0": 19.75,
                        "9.0": 21.25,
                        "10.0": 22.75,
                        "11.0": 24.25,
                        "12.0": 25.75,
                        "13.0": 27.25,
                        "14.0": 28.75,
                        "15.0": 30.25,
                        "16.0": 31.75,
                        "17.0": 33.25,
                        "18.0": 34.75,
                        "19.0": 36.25,
                        "20.0": 37.75,
                        "21.0": 39.25,
                        "22.0": 40.75,
                        "23.0": 42.25,
                        "24.0": 43.75,
                        "25.0": 45.25,
                        "26.0": 46.75,
                        "27.0": 48.25,
                        "28.0": 49.75,
                        "29.0": 51.25,
                        "30.0": 52.75,
                    }
                }
            }
        },

        economy: {
            name: "Economy",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 14.00
                    }
                },
                pack: {
                    weight: {
                        "0.5": 14.00,
                        "1.0": 14.00,
                        "1.5": 14.00,
                        "2.0": 14.00,
                        "2.5": 14.00,
                    }
                },
                box: {
                    weight: {
                        "0.5": 14.00,
                        "1.0": 14.00,
                        "1.5": 14.00,
                        "2.0": 14.00,
                        "2.5": 14.00,
                        "3.0": 14.00,
                        "3.5": 14.00,
                        "4.0": 14.00,
                        "4.5": 14.00,
                        "5.0": 14.00,
                        "6.0": 14.75,
                        "7.0": 15.50,
                        "8.0": 16.25,
                        "9.0": 17.00,
                        "10.0": 17.75,
                        "11.0": 18.50,
                        "12.0": 19.25,
                        "13.0": 20.00,
                        "14.0": 20.75,
                        "15.0": 21.50,
                        "16.0": 22.25,
                        "17.0": 23.00,
                        "18.0": 23.75,
                        "19.0": 24.50,
                        "20.0": 25.25,
                        "21.0": 26.00,
                        "22.0": 26.75,
                        "23.0": 27.50,
                        "24.0": 28.25,
                        "25.0": 29.00,
                        "26.0": 29.75,
                        "27.0": 30.50,
                        "28.0": 31.25,
                        "29.0": 32.00,
                        "30.0": 32.75,
                    }
                }
            }
        },

        nine_am: {
            name: "9 am",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 35.25
                    }
                },
                pack: {
                    weight: {
                        "0.5": 35.25,
                        "1.0": 35.25,
                        "1.5": 35.25,
                        "2.0": 35.25,
                        "2.5": 35.25,
                    }
                },
                box: {
                    weight: {
                        "0.5": 35.25,
                        "1.0": 35.25,
                        "1.5": 35.25,
                        "2.0": 35.25,
                        "2.5": 35.25,
                        "3.0": 35.25,
                        "3.5": 35.25,
                        "4.0": 35.25,
                        "4.5": 35.25,
                        "5.0": 35.25,
                        "6.0": 36.75,
                        "7.0": 38.25,
                        "8.0": 39.75,
                        "9.0": 41.25,
                        "10.0": 42.75,
                        "11.0": 44.25,
                        "12.0": 45.75,
                        "13.0": 47.25,
                        "14.0": 48.75,
                        "15.0": 50.25,
                        "16.0": 51.75,
                        "17.0": 53.25,
                        "18.0": 54.75,
                        "19.0": 56.25,
                        "20.0": 57.75,
                        "21.0": 59.25,
                        "22.0": 60.75,
                        "23.0": 62.25,
                        "24.0": 63.75,
                        "25.0": 65.25,
                        "26.0": 66.75,
                        "27.0": 68.25,
                        "28.0": 69.75,
                        "29.0": 71.25,
                        "30.0": 72.75,
                    }
                }
            }
        },

        ten_thirty_am: {
            name: "10:30 am",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 27.25 
                    }
                },
                pack: {
                    weight: {
                        "0.5": 27.25,
                        "1.0": 27.25,
                        "1.5": 27.25,
                        "2.0": 27.25,
                        "2.5": 27.25,
                    }
                },
                box: {
                    weight: {
                        "0.5": 27.25,
                        "1.0": 27.25,
                        "1.5": 27.25,
                        "2.0": 27.25,
                        "2.5": 27.25,
                        "3.0": 27.25,
                        "3.5": 27.25,
                        "4.0": 27.25,
                        "4.5": 27.25,
                        "5.0": 27.25,
                        "6.0": 28.75,
                        "7.0": 30.25,
                        "8.0": 31.75,
                        "9.0": 33.25,
                        "10.0": 34.75,
                        "11.0": 36.25,
                        "12.0": 37.75,
                        "13.0": 39.25,
                        "14.0": 40.75,
                        "15.0": 42.25,
                        "16.0": 43.75,
                        "17.0": 45.25,
                        "18.0": 46.75,
                        "19.0": 48.25,
                        "20.0": 49.75,
                        "21.0": 51.25,
                        "22.0": 52.75,
                        "23.0": 54.25,
                        "24.0": 55.75,
                        "25.0": 57.25,
                        "26.0": 58.75,
                        "27.0": 60.25,
                        "28.0": 61.75,
                        "29.0": 63.25,
                        "30.0": 64.75,

                    }
                }
            }
        },

        am: {
            name: "AM delivery",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 23.25
                    }
                },
                pack: {
                    weight: {
                        "0.5": 23.25,
                        "1.0": 23.25,
                        "1.5": 23.25,
                        "2.0": 23.25,
                        "2.5": 23.25,

                    }
                },
                box: {
                    weight: {
                        "0.5": 23.25,
                        "1.0": 23.25,
                        "1.5": 23.25,
                        "2.0": 23.25,
                        "2.5": 23.25,
                        "3.0": 23.25,
                        "3.5": 23.25,
                        "4.0": 23.25,
                        "4.5": 23.25,
                        "5.0": 23.25,
                        "6.0": 24.75,
                        "7.0": 26.25,
                        "8.0": 27.75,
                        "9.0": 29.25,
                        "10.0": 30.75,
                        "11.0": 32.25,
                        "12.0": 33.75,
                        "13.0": 35.25,
                        "14.0": 36.75,
                        "15.0": 38.25,
                        "16.0": 39.75,
                        "17.0": 41.25,
                        "18.0": 42.75,
                        "19.0": 44.25,
                        "20.0": 45.75,
                        "21.0": 47.25,
                        "22.0": 48.75,
                        "23.0": 50.25,
                        "24.0": 51.75,
                        "25.0": 53.25,
                        "26.0": 54.75,
                        "27.0": 56.25,
                        "28.0": 57.75,
                        "29.0": 59.25,
                        "30.0": 60.75,
                    }
                }
            }
        }
    },

    zone_1:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 22.50
                    }
                },
                pack: {
                    weight: {
                        "0.5": 23.50,
                        "1.0": 26.49,
                        "1.5": 29.48,
                        "2.0": 32.47,
                        "2.5": 35.46,
                    }
                },
                box: {
                    weight: {
                        "0.5": 25.00,
                        "1.0": 27.99,
                        "1.5": 30.98,
                        "2.0": 33.97,
                        "2.5": 36.96,
                        "3.0": 39.95,
                        "3.5": 42.94,
                        "4.0": 45.93,
                        "4.5": 48.92,
                        "5.0": 51.91,
                        "5.5": 54.90,
                        "6.0": 57.89,
                        "6.5": 60.88,
                        "7.0": 63.87,
                        "7.5": 66.86,
                        "8.0": 69.85,
                        "8.5": 72.84,
                        "9.0": 75.83,
                        "9.5": 78.82,
                        "10.0": 81.81,
                        "10.5": 84.80,
                        "11.0": 87.79,
                        "11.5": 90.78,
                        "12.0": 93.77,
                        "12.5": 96.76,
                        "13.0": 99.75,
                        "13.5": 102.74,
                        "14.0": 105.73,
                        "14.5": 108.72,
                        "15.0": 111.71,
                        "15.5": 114.70,
                        "16.0": 117.69,
                        "16.5": 120.68,
                        "17.0": 123.67,
                        "17.5": 126.66,
                        "18.0": 129.65,
                        "18.5": 132.64,
                        "19.0": 135.63,
                        "19.5": 138.62,
                        "20.0": 141.61
                    }
                }
            }
        }
    },

    zone_2:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 33.00
                    }
                },
                pack: {
                    weight: {
                        "0.5": 34.00,
                        "1.0": 37.02,
                        "1.5": 40.04,
                        "2.0": 43.06,
                        "2.5": 46.08
                    }
                },
                box: {
                    weight: {
                        "0.5": 36.00,
                        "1.0": 39.79,
                        "1.5": 43.58,
                        "2.0": 47.37,
                        "2.5": 51.16,
                        "3.0": 54.95,
                        "3.5": 58.74,
                        "4.0": 62.53,
                        "4.5": 66.32,
                        "5.0": 70.11,
                        "5.5": 73.90,
                        "6.0": 77.69,
                        "6.5": 81.48,
                        "7.0": 85.27,
                        "7.5": 89.06,
                        "8.0": 92.85,
                        "8.5": 96.64,
                        "9.0": 100.43,
                        "9.5": 104.22,
                        "10.0": 108.01,
                        "10.5": 111.80,
                        "11.0": 115.59,
                        "11.5": 119.38,
                        "12.0": 123.17,
                        "12.5": 126.96,
                        "13.0": 130.75,
                        "13.5": 134.54,
                        "14.0": 138.33,
                        "14.5": 142.12,
                        "15.0": 145.91,
                        "15.5": 149.70,
                        "16.0": 153.49,
                        "16.5": 157.28,
                        "17.0": 161.07,
                        "17.5": 164.86,
                        "18.0": 168.65,
                        "18.5": 172.44,
                        "19.0": 176.23,
                        "19.5": 180.02,
                        "20.0": 183.81
                    }
                }
            }
        }
    },

    zone_3:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 34.00
                    }
                },
                pack: {
                    weight: {
                        "0.5": 35.00,
                        "1.0": 39.00,
                        "1.5": 43.00,
                        "2.0": 47.00,
                        "2.5": 51.00
                    }
                },
                box: {
                    weight: {
                        "0.5": 39.00,
                        "1.0": 43.50,
                        "1.5": 48.00,
                        "2.0": 52.50,
                        "2.5": 57.00,
                        "3.0": 61.50,
                        "3.5": 66.00,
                        "4.0": 70.50,
                        "4.5": 75.00,
                        "5.0": 79.50,
                        "5.5": 84.00,
                        "6.0": 88.50,
                        "6.5": 93.00,
                        "7.0": 97.50,
                        "7.5": 102.00,
                        "8.0": 106.50,
                        "8.5": 111.00,
                        "9.0": 115.50,
                        "9.5": 120.00,
                        "10.0": 124.50,
                        "10.5": 129.00,
                        "11.0": 133.50,
                        "11.5": 138.00,
                        "12.0": 142.50,
                        "12.5": 147.00,
                        "13.0": 151.50,
                        "13.5": 156.00,
                        "14.0": 160.50,
                        "14.5": 165.00,
                        "15.0": 169.50,
                        "15.5": 174.00,
                        "16.0": 178.50,
                        "16.5": 183.00,
                        "17.0": 187.50,
                        "17.5": 192.00,
                        "18.0": 196.50,
                        "18.5": 201.00,
                        "19.0": 205.50,
                        "19.5": 210.00,
                        "20.0": 214.50
                    }
                }
            }
        }
    },

    zone_A:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 26.00
                    }
                },
                pack: {
                    weight: {
                        "0.5": 31.00,
                        "1.0": 33.75,
                        "1.5": 36.50,
                        "2.0": 39.25,
                        "2.5": 42.00
                    }
                },
                box: {
                    weight: {
                        "0.5": 36.50,
                        "1.0": 39.49,
                        "1.5": 42.48,
                        "2.0": 45.47,
                        "2.5": 48.46,
                        "3.0": 51.45,
                        "3.5": 54.44,
                        "4.0": 57.43,
                        "4.5": 60.42,
                        "5.0": 63.41,
                        "5.5": 66.40,
                        "6.0": 69.39,
                        "6.5": 72.38,
                        "7.0": 75.37,
                        "7.5": 78.36,
                        "8.0": 81.35,
                        "8.5": 84.34,
                        "9.0": 87.33,
                        "9.5": 90.32,
                        "10.0": 93.31,
                        "10.5": 96.30,
                        "11.0": 99.29,
                        "11.5": 102.28,
                        "12.0": 105.27,
                        "12.5": 108.26,
                        "13.0": 111.25,
                        "13.5": 114.24,
                        "14.0": 117.23,
                        "14.5": 120.22,
                        "15.0": 123.21,
                        "15.5": 126.20,
                        "16.0": 129.19,
                        "16.5": 132.18,
                        "17.0": 135.17,
                        "17.5": 138.16,
                        "18.0": 141.15,
                        "18.5": 144.14,
                        "19.0": 147.13,
                        "19.5": 150.12,
                        "20.0": 153.11
                    }
                }
            }
        }
    },

    zone_B:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 33.00
                    }
                },
                pack: {
                    weight: {
                        "0.5": 34.50,
                        "1.0": 38.99,
                        "1.5": 43.48,
                        "2.0": 47.97,
                        "2.5": 52.46
                    }
                },
                box: {
                    weight: {
                        "0.5": 41.50,
                        "1.0": 45.99,
                        "1.5": 50.48,
                        "2.0": 54.97,
                        "2.5": 59.46,
                        "3.0": 63.95,
                        "3.5": 68.44,
                        "4.0": 72.93,
                        "4.5": 77.42,
                        "5.0": 81.91,
                        "5.5": 86.40,
                        "6.0": 90.89,
                        "6.5": 95.38,
                        "7.0": 99.87,
                        "7.5": 104.36,
                        "8.0": 108.85,
                        "8.5": 113.34,
                        "9.0": 117.83,
                        "9.5": 122.32,
                        "10.0": 126.81,
                        "10.5": 131.30,
                        "11.0": 135.79,
                        "11.5": 140.28,
                        "12.0": 144.77,
                        "12.5": 149.26,
                        "13.0": 153.75,
                        "13.5": 158.24,
                        "14.0": 162.73,
                        "14.5": 167.22,
                        "15.0": 171.71,
                        "15.5": 176.20,
                        "16.0": 180.69,
                        "16.5": 185.18,
                        "17.0": 189.67,
                        "17.5": 194.16,
                        "18.0": 198.65,
                        "18.5": 203.14,
                        "19.0": 207.63,
                        "19.5": 212.12,
                        "20.0": 216.61
                    }
                }
            }
        }
    },

    zone_C:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 33.50
                    }
                },
                pack: {
                    weight: {
                        "0.5": 35.50,
                        "1.0": 40.47,
                        "1.5": 45.44,
                        "2.0": 50.41,
                        "2.5": 55.38,
                    }
                },
                box: {
                    weight: {
                        "0.5": 44.82,
                        "1.0": 50.15,
                        "1.5": 55.48,
                        "2.0": 60.81,
                        "2.5": 66.14,
                        "3.0": 71.47,
                        "3.5": 76.80,
                        "4.0": 82.13,
                        "4.5": 87.46,
                        "5.0": 92.79,
                        "5.5": 98.12,
                        "6.0": 103.45,
                        "6.5": 108.78,
                        "7.0": 114.11,
                        "7.5": 119.44,
                        "8.0": 124.77,
                        "8.5": 130.10,
                        "9.0": 135.43,
                        "9.5": 140.76,
                        "10.0": 146.09,
                        "10.5": 151.42,
                        "11.0": 156.75,
                        "11.5": 162.08,
                        "12.0": 167.41,
                        "12.5": 172.74,
                        "13.0": 178.07,
                        "13.5": 183.40,
                        "14.0": 188.73,
                        "14.5": 194.06,
                        "15.0": 199.39,
                        "15.5": 204.72,
                        "16.0": 210.05,
                        "16.5": 215.38,
                        "17.0": 220.71,
                        "17.5": 226.04,
                        "18.0": 231.37,
                        "18.5": 236.70,
                        "19.0": 242.03,
                        "19.5": 247.36,
                        "20.0": 252.69,
                    }
                }
            }
        }
    },

    zone_D:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 34.00
                    }
                },
                pack: {
                    weight: {
                        "0.5": 36.85,
                        "1.0": 42.85,
                        "1.5": 48.85,
                        "2.0": 54.85,
                        "2.5": 60.85,
                    }
                },
                box: {
                    weight: {
                        "0.5": 46.22,
                        "1.0": 52.22,
                        "1.5": 58.22,
                        "2.0": 64.22,
                        "2.5": 70.22,
                        "3.0": 76.22,
                        "3.5": 82.22,
                        "4.0": 88.22,
                        "4.5": 94.22,
                        "5.0": 100.22,
                        "5.5": 106.22,
                        "6.0": 112.22,
                        "6.5": 118.22,
                        "7.0": 124.22,
                        "7.5": 130.22,
                        "8.0": 136.22,
                        "8.5": 142.22,
                        "9.0": 148.22,
                        "9.5": 154.22,
                        "10.0": 160.22,
                        "10.5": 166.22,
                        "11.0": 172.22,
                        "11.5": 178.22,
                        "12.0": 184.22,
                        "12.5": 190.22,
                        "13.0": 196.22,
                        "13.5": 202.22,
                        "14.0": 208.22,
                        "14.5": 214.22,
                        "15.0": 220.22,
                        "15.5": 226.22,
                        "16.0": 232.22,
                        "16.5": 238.22,
                        "17.0": 244.22,
                        "17.5": 250.22,
                        "18.0": 256.22,
                        "18.5": 262.22,
                        "19.0": 268.22,
                        "19.5": 274.22,
                        "20.0": 280.22,
                    }
                }
            }
        }
    },

    zone_E:{
        standard: {
            name: "Standard",
            notes: "bla bla bla",
            transit: {
                envelope: {
                    weight: {
                        all: 35.50
                    }
                },
                pack: {
                    weight: {
                        "0.5": 37.50,
                        "1.0": 43.50,
                        "1.5": 49.50,
                        "2.0": 55.50,
                        "2.5": 61.50,
                    }
                },
                box: {
                    weight: {
                        "0.5": 46.84,
                        "1.0": 52.84,
                        "1.5": 58.84,
                        "2.0": 64.84,
                        "2.5": 70.84,
                        "3.0": 76.84,
                        "3.5": 82.84,
                        "4.0": 88.84,
                        "4.5": 94.84,
                        "5.0": 100.84,
                        "5.5": 106.84,
                        "6.0": 112.84,
                        "6.5": 118.84,
                        "7.0": 124.84,
                        "7.5": 130.84,
                        "8.0": 136.84,
                        "8.5": 142.84,
                        "9.0": 148.84,
                        "9.5": 154.84,
                        "10.0": 160.84,
                        "10.5": 166.84,
                        "11.0": 172.84,
                        "11.5": 178.84,
                        "12.0": 184.84,
                        "12.5": 190.84,
                        "13.0": 196.84,
                        "13.5": 202.84,
                        "14.0": 208.84,
                        "14.5": 214.84,
                        "15.0": 220.84,
                        "15.5": 226.84,
                        "16.0": 232.84,
                        "16.5": 238.84,
                        "17.0": 244.84,
                        "17.5": 250.84,
                        "18.0": 256.84,
                        "18.5": 262.84,
                        "19.0": 268.84,
                        "19.5": 274.84,
                        "20.0": 280.84,
                    }
                }
            }
        }
    }
};


var zones = {
   "Afghanistan" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : null
   },
   "Albania" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Algeria" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "E"
   },
   "American Samoa" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Andorra" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "1"
   },
   "Angola" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Anguilla" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Antigua" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Argentina" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Armenia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Aruba" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Australia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "B"
   },
   "Austria" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Azerbaijan" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "E"
   },
   "Bahamas" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Bahrain" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Bangladesh" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "5"
      },
      "zone" : "c"
   },
   "Barbados" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Barbuda" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Belarus" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "3"
   },
   "Belgium" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Belize" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Benin" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Bermuda" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Bhutan" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "c"
   },
   "Bolivia" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Bonaire" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Bosnia-Herzegovina" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Botswana" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Brazil" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Brunei" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "c"
   },
   "Bulgaria" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "3"
   },
   "Burkina Faso" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Burundi" : {
      "transit_time" : {
         "envelope" : "8",
         "parcel" : "8"
      },
      "zone" : "E"
   },
   "Cambodia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Cameroon" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Canada" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "A"
   },
   "Cape Verde" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "7"
      },
      "zone" : "E"
   },
   "Cayman Islands" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Chad" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Chile" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "China" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "B"
   },
   "Colombia" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Congo" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Congo Dem Rep" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Cook Islands" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Costa Rica" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Croatia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Curacao" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Cyprus" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "3"
   },
   "Czech Rep" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "3"
   },
   "Denmark" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Dijibouti" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "E"
   },
   "Djibouti" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : null
   },
   "Dominica" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Dominican Rep" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "East Timor" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : null
   },
   "Ecuador" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Egypt" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "c"
   },
   "El Salvador" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Equatorial Guinea" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "E"
   },
   "Eritrea" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Estonia" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Ethiopia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Faroe Islands" : {
      "transit_time" : {
         "envelope" : "7",
         "parcel" : "7"
      },
      "zone" : "1"
   },
   "Fiji" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Finland" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "France" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "French Guiana" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "D"
   },
   "French Polynesia" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Gabon" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Gambia" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Georgia" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Germany" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Ghana" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "E"
   },
   "Gibraltar" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "2"
   },
   "Greece" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "1"
   },
   "Greenland" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "1"
   },
   "Grenada" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Guadeloupe" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Guam" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Guatemala" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Guinea" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Guniea-Bissau" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "E"
   },
   "Guyana" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Haiti" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Honduras" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Hong Kong" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "B"
   },
   "Hungary" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "3"
   },
   "Iceland" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "2"
   },
   "India" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Indonesia" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "B"
   },
   "Iraq" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : null
   },
   "Ireland" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Israel" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "c"
   },
   "Italy" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Ivory Coast" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Jamaica" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Japan" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "B"
   },
   "Jordan" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Kazakhstan" : {
      "transit_time" : {
         "envelope" : "7",
         "parcel" : "9"
      },
      "zone" : "E"
   },
   "Kenya" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "E"
   },
   "Kuwait" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Kyrgyzstan" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Laos" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Latvia" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Lebanon" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Lesotho" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Liberia" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Liechtenstein" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "2"
   },
   "Lithuania" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "3"
   },
   "Luxembourg" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Macau" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "B"
   },
   "Macedonia" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "3"
   },
   "Madagascar" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Malawi" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "E"
   },
   "Malaysia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "B"
   },
   "Maldives" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Mali" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Malta" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Marshall Islands" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Martinique" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Mauritania" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Mauritius" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Mexico" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "A"
   },
   "Micronesia" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Moldova" : {
      "transit_time" : {
         "envelope" : "7",
         "parcel" : "7"
      },
      "zone" : "3"
   },
   "Monaco" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Mongolia" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Montserrat" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Morocco" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "E"
   },
   "Mozambique" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Myanmar" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "c"
   },
   "Namibia" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Nepal" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "c"
   },
   "Netherlands" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Netherlands Antilles" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "New Caledonia" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "New Zealand" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "B"
   },
   "Nicaragua" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Niger" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "8"
      },
      "zone" : "E"
   },
   "Nigeria" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Norway" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "2"
   },
   "Oman" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Pakistan" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "c"
   },
   "Palau" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Palestine Authority" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "c"
   },
   "Panama" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Papua New Guinea" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Paraguay" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "D"
   },
   "Peru" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Philippines" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "B"
   },
   "Poland" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "3"
   },
   "Portugal" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Puerto Rico" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "A"
   },
   "Qatar" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "c"
   },
   "Reunion Island" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Romania" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Russia" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "Rwanda" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Saba" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Saipan" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "E"
   },
   "San Marino" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Saudi Arabia" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "c"
   },
   "Senegal" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Seychelles" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Sierra Leone" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "E"
   },
   "Singapore" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "B"
   },
   "Slovak Republic" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "3"
   },
   "Slovenia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "3"
   },
   "South Africa" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "South Korea" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "3"
      },
      "zone" : "B"
   },
   "Spain" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Sri Lanka" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "c"
   },
   "St Eustatius" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "St Kitts & Nevis" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "St Lucia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "St Martin" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "St Vincent" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "St. Barthelemy" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "D"
   },
   "Sudan" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "E"
   },
   "Suriname" : {
      "transit_time" : {
         "envelope" : "8",
         "parcel" : "9"
      },
      "zone" : "D"
   },
   "Swaziland" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Sweden" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "1"
   },
   "Switzerland" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "2"
   },
   "Syria" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "6"
      },
      "zone" : "c"
   },
   "Taiwan" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "B"
   },
   "Tanzania" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Thailand" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "B"
   },
   "Togo" : {
      "transit_time" : {
         "envelope" : "6",
         "parcel" : "6"
      },
      "zone" : "E"
   },
   "Trinidad & Tobago" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Tunisia" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "E"
   },
   "Turkey" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "3"
   },
   "Turkmenistan" : {
      "transit_time" : {
         "envelope" : "UNKNOWN",
         "parcel" : "UNKNOWN"
      },
      "zone" : "E"
   },
   "Turks & Caicos" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Uganda" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Ukraine" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "4"
      },
      "zone" : "3"
   },
   "United Arab Emirates" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "c"
   },
   "United States of America" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "A"
   },
   "Uruguay" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "D"
   },
   "Uzbekistan" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Vanuatu" : {
      "transit_time" : {
         "envelope" : "5",
         "parcel" : "5"
      },
      "zone" : "E"
   },
   "Vatican City" : {
      "transit_time" : {
         "envelope" : "2",
         "parcel" : "2"
      },
      "zone" : "1"
   },
   "Venezuela" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Vietnam" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "B"
   },
   "Virgin Islands (GB)" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Virgin Islands (USA)" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "D"
   },
   "Wallis & Futuna" : {
      "transit_time" : {
         "envelope" : "7",
         "parcel" : "7"
      },
      "zone" : "E"
   },
   "Yemen" : {
      "transit_time" : {
         "envelope" : "3",
         "parcel" : "3"
      },
      "zone" : "c"
   },
   "Zambia" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "Zimbabwe" : {
      "transit_time" : {
         "envelope" : "4",
         "parcel" : "4"
      },
      "zone" : "E"
   },
   "United Kingdom" : {
      "transit_time" : {
         "envelope" : "1",
         "parcel" : "1"
      },
      "zone" : "uk"
   }
};

//#####################################################################################################################

function change_form (src_element) {
    //console.log("changed:" + src_element);
    
    //get the item type and the country to determine the delivery type
    var type = get_selected_value('type_select');
    var country = get_selected_value('country_select'); 
    
    
    
    if (src_element.name != 'del_type') {
        if (type && country) {
            //update the delivery type
            var del_types = get_delivery_types(country);
            clear_select('del_type');
            array_to_select('del_type', del_types);
            
        }
    }
    
    if (type && country) {
        var zone = get_zone_data( country );
        var delivery_type = get_selected_value('del_type');
        
        if (zone != null) {
            var weights = get_weights(zone.zone, type, delivery_type);
            clear_select('del_weight');
            array_to_select('del_weight', weights);
        }
    }
    
    if (type && country && get_selected_value('del_type')) {
        //console.log('setting transit time');
        //set the transit time
        var transit_time = get_transit_time(country, type, get_selected_value('del_type'));
        var str_day = transit_time == 1 ? 'day' : 'days';
        var out_str = 'Approximate transit time is ' + transit_time + ' ' + str_day;
        set_div('div_output_transit', out_str);
    }
    
    if (type && country && get_selected_value('del_type') && get_selected_value('del_weight')) {
        //set the price
        var price = get_price(type, country, get_selected_value('del_type'), get_selected_value('del_weight'));
        set_div('div_output_price', 'Delivery Cost: &pound;' + price);
    }
}       

//#####################################################################################################################

function update_transit () {
    if (get_selected_value('type_select') && 
        get_selected_value('country_select') && 
        get_selected_value('del_type')) {
        //set the transit time
        var transit_time = get_transit_time(get_selected_value('country_select'), get_selected_value('type_select'), get_selected_value('del_type'));
        var str_day = transit_time == 1 ? 'day' : 'days';
        var out_str = 'Approximate transit time is ' + transit_time + ' ' + str_day;
        set_div('div_output_transit', out_str);
    }
}

//#####################################################################################################################

function update_price () {
    if (get_selected_value('type_select') && 
        get_selected_value('country_select') && 
        get_selected_value('del_type') && 
        get_selected_value('del_weight')) {
        //set the price
        var price = get_price(get_selected_value('type_select'), get_selected_value('country_select'), get_selected_value('del_type'), get_selected_value('del_weight'));
        set_div('div_output_price', 'Delivery Cost: &pound;' + price);
    }
}

//#####################################################################################################################

function get_price (pack_type, country, del_type, del_weight) {

    var zone_data = get_zone_data(country);

    var zone_name = zone_data.zone;

    var zone_key = 'zone_' + zone_name.toUpperCase();

    var price = delivery[zone_key][del_type].transit[pack_type].weight[del_weight];
    
    return(price.toFixed(2));
    
}

//#####################################################################################################################

function get_transit_time (country_name, pack_type, del_type) {
    if (pack_type == 'pack' || pack_type == 'box') {
        pack_type = 'parcel';
    }
    
//console.log(del_type);

    if (del_type ==  'economy') {
        //console.log('Eco');
        return(3);
    }
    else {   
        return( zones[country_name].transit_time[pack_type] );
    }
    
}

//#####################################################################################################################

function set_div (div_name, string) {
    document.getElementById(div_name).innerHTML = string;
}

//#####################################################################################################################

function get_selected_value (select_element_id) {
    var sel_element = document.getElementById(select_element_id);
    
    var value = sel_element.options[sel_element.selectedIndex].value;
    
    return(value);
}


//#####################################################################################################################

function populate_countries (select_element_id) {
    //find the target element
    var select_element = document.getElementById(select_element_id);
    
    //get a list of the countries
    var countries = get_key_names(zones);
    
    countries.unshift('United Kingdom', 'United States of America');
    countries.unshift('Choose Country');
    array_to_select(select_element, countries);

}

//#####################################################################################################################

function get_select (select_element) {
    if (typeof(select_element) == 'string') {
        //console.log('getting element');
        select_element = document.getElementById(select_element);
    }   
    return(select_element);
}

//#####################################################################################################################

function array_to_select (select_element, data) {
    
    select_element = get_select(select_element);
    
    for (var i=0; i<data.length; i++) {
        var new_option = document.createElement("OPTION");

        if (typeof data[i] == 'object') {
            new_option.value = data[i].value;
            new_option.text = data[i].text;
        }
        else {
            new_option.value = data[i];
            new_option.text = data[i];
        }

        select_element.add(new_option);
    }
}

//#####################################################################################################################

function clear_select (select_element) {
    
    select_element = get_select(select_element);
    
    select_element.options.length = 0;
}

//#####################################################################################################################

function get_zone_data (country_name) {
    var country = zones[country_name];

    if (country_name == 'Choose Country') {
        return(null);
    }

    if (country != null) {
        return(country);
    }
    else {
        alert('No data for this country\nPlease call for more information');
    }
}

//#####################################################################################################################

function get_weights (zone_name, item_type, delivery_type) {

    if (zone_name) {
        var zone_key = 'zone_' + zone_name.toUpperCase();

        var weight_table = delivery[zone_key][delivery_type].transit[item_type].weight;

        //console.log(weight_table);

        var weights = get_key_names(weight_table, true);

        return(weights);
    }
    else {
        alert('No data for this country\nPlease call for more information');        
    }


}

//#####################################################################################################################

function get_delivery_types (country) {
    var delivery_types = [{value: 'standard', text: 'Standard'}];

    if (country == 'United Kingdom') {
        delivery_types = [];

        var zdata = get_key_names(delivery.zone_UK);
        for (var i=0; i<zdata.length; i++) {
            //console.log(zdata);
            delivery_types.push({ value:zdata[i], text:delivery.zone_UK[zdata[i]].name });
        }
    }

    return(delivery_types);

}

//#####################################################################################################################

function sortNumeric (a,b) {
    return(a - b);
}

//#####################################################################################################################

function get_key_names (hash, numeric) {        //numeric is boolean flag to force a numeric sort
    var keys = [];
    for(var i in hash) if (hash.hasOwnProperty(i)) {
        keys.push(i);
    }
    if (numeric) {
return keys.sort(sortNumeric);        
    }
    else {
        return keys.sort();
    }
}

//#####################################################################################################################


