        function loadWeather($loc)
        {
            $('#weather').replaceWith('<div id="weather">loading...</div>');
            var wurl = "http://free.worldweatheronline.com/feed/weather.ashx?q=" + $loc + "&format=json&timezone=yes&num_of_days=5&key=12b2d1cbc0035406111709&extra=localObsTime&callback=?";
            $.getJSON(wurl,
               function(data){
                    var obj = jQuery.parseJSON(data['current_condition']);
                    var current = {};
                    $.each(data.data.current_condition[0], function(key, val) {
                        if ($.isArray(val)){
                            current[key] = val[0].value;
                        }
                        else {
                            current[key] =  val;
                        }
                    });

                    var forcas = {};
                    i = 0;
                    $.each(data.data.weather, function(key, val) {
                        var day = {};
                        $.each(val, function(key, val) {
                            if ($.isArray(val)){
                                day[key] =  val[0].value ;
                            }
                            else {
                                day[key] =  val ;
                            }

                        });
                        i++;
                        forcas[i] = day;
                    });
                    
                    $curImg = $('<img/>', {'class': 'weatherIcon', 'src': current['weatherIconUrl']});
                    $txtdat = $('<div/>', {html: $loc + "<br />Current: " + current['temp_C'] + '&deg; <br />' + current['weatherDesc'] + "<br />Precip: " + current['precipMM'] + "mm<br />Wind: " + current['winddir16Point'] + ' ' + current['windspeedKmph'] + "kph<br />Humidity: " + current['humidity'] + "%"});
                    $curTxt = $('<span/>', {'class': 'weatherText', html: $txtdat});
                    var d1 = new Date(Date.parse(current['localObsDateTime']));
                    $obsTime = "observation time: " + d1.toString('HH:mm');
                    $obsTxt = $('<span/>', {'class': 'weatherTime', html: $obsTime});
                    $('#weather').replaceWith('<div id="weather"></div>');
                    $curDiv = $('<div/>', {'class': 'weatherCurrent'}).appendTo('#weather');
                    $curImg.appendTo($curDiv);
                    $curTxt.appendTo($curDiv);
                    $obsTxt.appendTo($curDiv);
                    $('<div/>', {'style': 'clear:both;'}).appendTo('#weather');
                    

                    $.each(forcas, function(key, val) {
                        $dayName = strDay(this['date']);
                        $curImg = $('<img/>', {'class': 'weatherIcon', 'src': this['weatherIconUrl']});
                        $txtdat = $('<div/>', {html: $dayName+"<br />" + this['tempMinC'] +"&deg; min - " + this['tempMaxC'] + '&deg; max<br /> ' + this['weatherDesc'] + "<br />Precip: " + this['precipMM'] + "mm<br />Wind: " + this['winddir16Point'] + ' ' + this['windspeedKmph'] + "kph<br />"});
                        $curTxt = $('<div/>', {'class': 'weatherText', html: $txtdat});
                        var d1 = Date.parse(this['localObsDateTime']);
                        $curDiv = $('<div/>', {'class': 'weather'}).appendTo('#weather');
                        $curImg.appendTo($curDiv);
                        $curTxt.appendTo($curDiv);
                    });
               }
            );
        }
        
        var daysInWeek = ["Sunday", "Monday", "Tuesday", "Wednesday", "Thursday", "Friday", "Saturday"];
        function strDay(value) {
            date = Date.parse(value);
            //date = new Date(value);
            dayOfWeek = date.getDay();
            return daysInWeek[dayOfWeek];
        }

        function StateChange()
        {
            $('#selDistrict').find('option').remove().end();
            for(var x = 0; x < arrDistrictRegion.length; x++)
            {
                var strSelectedState = $('#selState option:selected').val();
                if (arrDistrictRegion[x]==strSelectedState) {
                    var anOption;
                    var arrSelectedState = arrDistrictRegion[x+1];
                    anOption = new Option('', '');
                    $('#selDistrict').append(anOption);
                    for(var f = 0; f < arrSelectedState.length; f++)
                    {
                        //anOption = new Option(arrSelectedState[f], arrSelectedState[f]);
                        anOption = $('<option></option>').val(arrSelectedState[f]).html(arrSelectedState[f]);
                        $('#selDistrict').append(anOption);
                    }
                }
            }
        }
        function DistrictChange() {
            $('#selRegion').find('option').remove().end();

            var strSelectedDistrict =  $('#selDistrict').val();
            for(var x = 0; x < arrDistrictRegion.length; x++)
            {
                if (arrDistrictRegion[x] == strSelectedDistrict) {
                    var arrRegions = arrDistrictRegion[x + 1];
                    var anOption;
                    for(var f = 0; f < arrRegions.length; f++)
                    {
                        anOption = new Option(arrRegions[f], arrRegions[f]);
                        $('#selRegion').append(anOption);
                    }
                }
            }
            anOption = new Option('', '');
            $('#selRegion').prepend(anOption);
            $('#selRegion').val(0);
        }

        function updWeather() {

            $state = $('#selState option:selected').val();
            $Distr = $('#selDistrict option:selected').val();

            $loc = $Distr + ',' + 'Australia';
            loadWeather($loc);
        }

        var arrDistrictRegion = new Array('NSW', new Array('Albury',
            'Armidale',
            'Broken Hill',
            'Cessnock',
            'Coffs Harbour',
            'Dubbo',
            'Goulburn',
            'Grafton',
            'Griffith',
            'Lismore',
            'Newcastle',
            'Orange',
            'Port Macquarie',
            'Queanbeyan',
            'Sawtell',
            'Sydney',
            'Tamworth',
            'Taree',
            'Wagga Wagga',
            'Wollongong'),'WA', new Array(
            'Ajana',
            'Albany',
            'Aldersyde',
            'Boyup Brook',
            'Bunbury',
            'Busselton',
            'Carnamah',
            'Dalwallinu',  
            'Esperance',
            'Geraldton',
            'Hyden', 
            'Katanning', 
            'Kwinana',
            'Lake Grace', 
            'Mandurah',
            'Merredin',
            'Mingenew',
            'Moora', 
            'Narrogin', 
            'Northam',
            'Northampton', 
            'Perth',
            'Ravensthorpe',
            'Southern Cross', 
            'Tammin'),'ACT', new Array(
            'Belconnen',
            'Canberra',
            'Duntroon',
            'Fyshwick',
            'Gibraltar',
            'Ginninderra',
            'Gudgenby',
            'Hall',
            'Harman',
            'Jervis Bay',
            'Majura',
            'Molonglo',
            'Tharwa',
            'Tuggeranong',
            'Weetangerra',
            'Weston Creek'),'NT', new Array(
            'Alice Springs',
            'Alyangula',
            'Darwin',
            'Katherine',
            'Maningrida',
            'Maranboy Police Station',
            'Mataranka',
            'Mcminns Lagoon',
            'Murgenella Settlement',
            'Newcastle Waters',
            'Nhulunbuy',
            'Nhulunby',
            'Nightcliff',
            'Nullumbuy',
            'Numbulwah Mission',
            'Numbulwar',
            'Palmerston',
            'Paraparap',
            'Port Keats',
            'Tennant Creek'),'QLD', new Array(
            'Bongaree',
            'Brisbane',
            'Buderim',
            'Bundaberg',
            'Caboolture',
            'Cairns',
            'Caloundra',
            'Deception Bay',
            'Gladstone',
            'Gold Coast',
            'Mackay',
            'Maryborough',
            'Mount Isa',
            'Nambour',
            'Nerang',
            'Rockhampton',
            'Toowoomba',
            'Townsville',
            'Victoria Point',
            'Warwick'),'SA', new Array(
            'Adelaide',
            'Gawler',
            'Mount Barker',
            'Mount Gambier',
            'Murray Bridge',
            'Pekina',
            'Pellaring Flat',
            'Penfield',
            'Penneshaw',
            'Penola',
            'Penong',
            'Perara',
            'Perponda',
            'Peterborough',
            'Petersburgh',
            'Port Augusta',
            'Port Lincoln',
            'Port Pirie',
            'Victor Harbor',
            'Whyalla'
            ),'TAS', new Array(
            'Burnie',
            'Devonport',
            'Hobart',
            'Launceston',
            'New Norfolk',
            'Osterley',
            'Osterly',
            'Ouse',
            'Palana',
            'Paloona',
            'Paper Beach',
            'Paradise',
            'Parattah',
            'Parkham',
            'Parrawe',
            'Patersonia',
            'Pawleena',
            'Pawtella',
            'Pelham',
            'Ulverstone'
            ),'VIC', new Array(
            'Bairnsdale',
            'Ballarat',
            'Bendigo',
            'Craigieburn',
            'Cranbourne',
            'Geelong',
            'Horsham',
            'Melbourne',
            'Melton',
            'Mildura',
            'Morwell',
            'Pakenham',
            'Sale',
            'Sunbury',
            'Swan Hill',
            'Traralgon',
            'Wangaratta',
            'Warragul',
            'Warrnambool',
            'Wodonga'
            ));
