﻿$(document).ready(function () {
    $('.address_field').live("change", function () {
        $('#trAddressOptions').hide();
        $('#Moniker').val('');
        $('input[name="PaxAddress.Moniker"]').val('');
        $('input[name="AddressOptionsQAS"]').removeAttr('checked');
    });

    var w = $('#divAddressList').width();
    $('#divAddressList').width(w + 25);
}); 

function UpdateStateOptions(stateVal_) {
    var country = $('[name="PaxAddress.CountryCode"]').val();
    if (stateVal_ == undefined || stateVal_ == null) { stateVal_ = ''; }

    $('[name="PaxAddress.State"]').attr('disabled', 'disabled');

    $.ajax({
        url: '/AddressService/StateCodes',
        data: ({ CountryCode: country }),
        success: function (result) {
            if (result.length > 0) {
                BuildStateDropDown(result, stateVal_);
            } else {
                BuildStateTextBox(result, stateVal_);
            }
        },
        error: (function (result) {
            BuildStateTextBox(result, stateVal_);
        })
    });
}

function BuildStateDropDown(list_, stateVal_) {
    $('[name="PaxAddress.State"]').remove();

    var html = '<select name="PaxAddress.State" class="address_field select-orig required_field" id="statecode">';
    html = html + '<option value=""></option>';
    for (var x = 0; x < list_.length; x++) {
        html = html + '<option value="' + list_[x].StateCode + '">' + list_[x].Title + '</option>';
    }

    html = html + '</select>';
    $('#PaxAddressStateWrapper').html(html);
    $('[name="PaxAddress.State"]').val(stateVal_);

    styleSelects();
}

function BuildStateTextBox(stateVal_) {
    $('[name="PaxAddress.State"]').remove();
    var html = '<input name="PaxAddress.State" type="text" class="address_field required_field" />';
    $('#PaxAddressStateWrapper').html(html);
    $('[name="PaxAddress.State"]').val(stateVal_);
}

function UpdateAddressFeilds(Moniker_) {
    var country = $('[name="PaxAddress.CountryCode"]').val();

    $.ajax({
        url: '/AddressService/GetAddressFromMoniker',
        data: ({ Moniker: Moniker_, CountryCode: country }),
        success: function (result) {
            $('[name="PaxAddress.AddressLine1"]').val(result.AddressLine1);
            $('[name="PaxAddress.AddressLine2"]').val(result.AddressLine2);
            $('[name="PaxAddress.Suburb"]').val(result.Suburb);

            UpdateStateOptions(result.State);

            $('[name="PaxAddress.Postcode"]').val(result.Postcode);
        },
        error: (function (result) {
            alert('error populating address');
        })
    });
}
