var $selectedItem;
var selectItem = function(item)
{
    $selectedItem = $(item).first();
    var modal = $('#ajaxModal');
    var ref   = modal.attr('ref');
    if(config.requestType == 'GET')
    {
        var link  = ref + '&customerID=' + $selectedItem.data('key');
    }
    else
    {
        var viewType = config.defaultView;
        var link     = ref.replace('.' + viewType, '') + '-' + $selectedItem.data('key') + '.' + viewType;
    }
    modal.load(link, function(){$(this).find('.modal-dialog').css('width', $(this).data('width')); $.zui.ajustModalPosition()})
};

$(function()
{
    var showSearchModal = function()
    {
        var key      = $('#customer_chosen .chosen-results > li.no-results > span').text();
        var relation = 'client';
        var link     = createLink('customer', 'ajaxSearchCustomer', 'key=' + key + '&relation=' + relation);
        $('#ajaxModal').load(link);
    };

    $(document).on('change', '#customer', function()
    {
        if($(this).val() === 'ajax_search_more')
        {
             showSearchModal();
        }
    });

    $(document).on('click', '#customer_chosen .chosen-results > li.no-results', showSearchModal);

    $(document).on('hide.zui.modal', '#ajaxModal', function()
    {
        var key       = '';
        var $customer = $('#customer');
        if($selectedItem && $selectedItem.length)
        {
            key = $selectedItem.data('key');
            if(!$customer.children('option[value="' + key + '"]').length)
            {
                $customer.prepend('<option value="' + key + '">' + $selectedItem.text() + '</option>');
            }
        }
        $customer.val(key).trigger("chosen:updated");
        $selectedItem = null;
    });

    $('#selectCustomer').change(function()
    {
        var $checkbox   = $(this);
        var $inputGroup = $checkbox.closest('.input-group');
        if($checkbox.prop('checked'))
        {
            $('#customer_chosen').show().removeClass('hidden');
            $inputGroup.find('input[type=text][id=name]').hide();
        }
        else
        {
            $inputGroup.find('select').hide();
            $('#customer_chosen').hide();
            $inputGroup.find('input[type=text][id=name]').show();
        }
        $('#customer').trigger("chosen:updated");
        $inputGroup.fixInputGroup();
    });
    $('#selectCustomer').change();
})
