/*
stdClass Object
(
    [id] => 15886
    [postcode] => 7000
    [suburb] => BATHURST STREET PO
    [state] => TAS
    [cost_hc] => 695
    [cost_ec] => 670
)
*/
$(document).ready(function () {
    $('#postcode_go').bind('click', function (e) {
        $('#postcode_loader').show();
        var pc_val = $('#postcode').val();
        $.getJSON('js/postcode.php', {postcode: pc_val}, function (json) {
            $('#postcode_error').slideUp('fast');
            $('#form_step2').slideUp('fast');
            $('#form_step2b').slideUp('fast');
            $('#form_step3').slideUp('fast');
            $('#selection').slideUp('slow', function () {
                $('#postcode_loader').hide();
                $('#selection').empty();
                if (json.postcodes.length > 0) {
                    if (json.postcodes[0].error != undefined) {
                        $('#postcode_error').html(json.postcodes[0].error);
                        $('#postcode_error').slideDown('slow');
                    }
                    else {
                        for (var i = 0; i < json.postcodes.length; i++) {
                            var newOpt = $('<option></option>');
                            $(newOpt).val(json.postcodes[i].id);
                            $(newOpt).attr('text',json.postcodes[i].state + ' - ' + json.postcodes[i].suburb);
                            $(newOpt).attr('data', json.postcodes[i].postcode+','+json.postcodes[i].suburb+','+json.postcodes[i].state+','+json.postcodes[i].cost_hc+','+json.postcodes[i].cost_ec);
                            $(newOpt).bind('click', doSelection);
                            $('#selection').append(newOpt);
                        }
                        $('#selection').bind('change', doSelection);
                        $('#selection').slideDown('slow');
                    }
                }
                else {
                    $('#postcode_error').html('We do not have any postcodes on record that match your query. Please try again!');
                    $('#postcode_error').slideDown('slow');
                }
            });
        });
    });
});

function doSelection() {
    //var data = $(this).attr('data');
    var data = null;
    //if (data == undefined) {
        data = $('#selection').attr('options')[$('#selection').attr('selectedIndex')];
        data = $(data).attr('data');
    //}
    data = data.split(',');
    if (data[3] == 0 || data[4] == 0) {
        $('#form_step2').slideUp('fast');
        $('#form_step2b').slideDown('slow');
    }
    else {
        $('#postcode').val(data[0]);
        $('#delivery_type_ec').bind('click', function () {
            choosePrice();
        });
        $('#postcode_ec').html('$' + data[4] + '.00');
        $('#delivery_type_hc').bind('click', function () {
            choosePrice();
        });
        $('#postcode_hc').html('$' + data[3] + '.00');
        $('#form_step2b').slideUp('fast');
        $('#form_step2').slideDown('slow');
    }
}

function choosePrice() {
    $('#form_step3').slideDown();
    var f = document.getElementById('form1');
    var price = 0;
    for (var i = 0; i < f.elements.length; i++) {
        if (f.elements[i].name == 'delivery_type' && f.elements[i].checked) {
            if (f.elements[i].value == 'ec') {
                $('#postcode_price').html($('#postcode_ec').html());
                $('#postcode_csv_price').val($('#postcode_ec').html());
            }
            else if (f.elements[i].value == 'hc') {
                $('#postcode_price').html($('#postcode_hc').html());
                $('#postcode_csv_price').val($('#postcode_hc').html());
            }
        }
    }
}

function validateForm() {
    var form_name = $('#Name_purchaser_1').val();
    var form_email = $('#Email').val();
    var form_signature = $('#signature').val();
    console.debug('Name: [' + form_name + ']');
    console.debug('Email: [' + form_email + ']');
    console.debug('Signature: [' + form_signature + ']');
    
    if (form_name == '' || form_email == '') {
        alert('You must enter both a name and an email address.');
        if (form_name == '') {
            $('#name_purchaser_1').trigger('focus');
        }
        else if (form_email == '') {
            $('#email').trigger('focus');
        }
        return false;
    }
    else if(form_signature == '') {
        alert('You must also provide a signature to proceed.');
        $('#signature').trigger('focus');
        return false;
    }
    else {
        return true;
    }
}
