/*<? php ?><script type="text/javascript">*/

basket = {
    'disabled': false
}

jQuery(document).ready(function() {
    jQuery("a.lightbox").lightBox();

    // инпуты на форме авторизации

    $('.side_lk li input').focus(function() {
        $(this).siblings('label').hide();
    });

    $('.side_lk li input').blur(function() {
        if ($(this).val() == '') {
            $(this).siblings('label').show();
        }
    });

    $('.side_lk li input').keyup(function() {
        $('.side_lk li input').each(function() {
            if ($(this).val()) {
                $(this).siblings('label').hide();
            }
        });
    });

    //$('.side_lk li input').val('');

    $('.side_lk li input').each(function() {
        if ($(this).val()) {
            $(this).siblings('label').hide();
        }
    });


    // форма авторизации

    $('#f_auth').submit(function(){

        var form = $(this);

        form.find('.error').slideUp();

        $.ajax({
            type: form.attr('method'),
            url: form.attr('action'),
            data: form.serialize(),
            dataType: 'json',
            success: function(data){
                if (data['code'] == 'error') {
                    form.find('.error').text(data['data']['message']).slideDown();
                } else {
                    success_auth_user(data);
                }
            }
        });

        return false;
    });

    // кнопка выхода
    $('#logoutButton').click(function(){

        $.ajax({
            type: 'get',
            url: $(this).attr('href'),
            dataType: 'json',
            success: function(data){
                if (data['code'] == 'ok') {
                    $('#holderUser').slideUp();
                    $('#holderLogin').slideDown();
                }

                $('.user-required').slideUp(function(){
                    $('.no-user-required').slideDown();
                    $('.registration-form').slideDown();
                });
            }
        });

        return false;
    });

    // кнопка добавления в корзину
    $('.item_selection a.basket').click(function(){
        var add = {};
        $(this).parents('.item_selection:first').find('.item_qnt').each(function(){
            var art = $(this).data('art');
            var count = parseInt($(this).val());
            if (count) {
                add[art] = count;
            }
        });

        if (!empty(add)) {
            $.ajax({
                type: 'post',
                url: '/basket/options/add/',
                data: $.param({'art': add}),
                dataType: 'json',
                success: function(data){
                    if (data['code'] == 'ok') {
                        print_side_basket(data['data']['basket']);
                    }
                }
            });
        }

        return false;
    });

    // кнопка удаления из корзины справа
    $('a.side_basket_del').live('click', function(){

        var art = null;
        if ($(this).siblings('.side_basket_qnt').length) {
            art = $(this).siblings('.side_basket_qnt').data('art');
        } else {
            art = $(this).parents('tr:first').find('.side_basket_qnt').data('art');
        }

        $.ajax({
            type: 'post',
            url: '/basket/options/remove/',
            data: 'art=' + art,
            dataType: 'json',
            success: function(data){
                if (data['code'] == 'ok') {
                   print_side_basket(data['data']['basket']);
                }
            }
        });

        return false;
    });

    // пересчет корзины справа
    $('#side_basket_recalc').click(function(){
        var counts = {};
        $('#side_basket_list').find('.side_basket_qnt').each(function(){
            var art = $(this).data('art');
            var count = parseInt($(this).val());
            counts[art] = count;
        });

        if (!empty(counts)) {
            $.ajax({
                type: 'post',
                url: '/basket/options/count/',
                data: $.param({'art': counts}),
                dataType: 'json',
                success: function(data){
                    if (data['code'] == 'ok') {
                        print_side_basket(data['data']['basket']);
                    }
                }
            });
        }

        return false;
    });

    // кнопка оформления заказа
    $('a.order').click(function(){
        
        return false;
    });

    $('.holder2').each(function(){
        $(this).find('.item_info:last').addClass('item_info_last');
    });
});

$(window).resize(function() {
});


/**
 * Basket print function
 * @param data
 */
function print_side_basket(data){

    if ($('#side_basket_list').is('ul')) {
        // для превью корзины (справа)
        $('#side_basket_list').empty();

        if (empty(data['basket'])) {
            $('#side_basket').hide();
            $('#side_basket_empty').show();
            return;

        } else {
            $('#side_basket').show();
            $('#side_basket_empty').hide();
        }

        for (var art in data['basket']) {
            var item = data['basket'][art];

            var node = $('<li><p>' + item['name'] + '</p><p><a href="#delete" class="side_basket_del"><img src="/data/img/del.gif" alt="Удалить"></a><input type="text" name="item1" class="side_basket_qnt" value="' + item['count'] + '" data-art="' + item['art'] + '"><span class="side_basket_cost">' + price(item['price']) + ' р. / ' +  item['size'] + ' ' + item['format'] + '</span></p></li>');

            $('#side_basket_list').append(node);
        }

        $('#side_basket_sum span').html(price(data['total']));

    } else if ($('#side_basket_list').is('table')) {
        // для основной корзины
        $('#side_basket_list tr:not(.thead)').remove();

        if (empty(data['basket'])) {
            $('#main_basket').hide();
            $('#emptyBacket').show();
            return;

        } else {
            $('#main_basket').show();
            $('#emptyBacket').hide();
        }

         for (var art in data['basket']) {
            var item = data['basket'][art];

            var node = $('<tr><td width="100%">' + item['name'] + '</td><td nowrap="nowrap">' + item['art'] + '</td><td nowrap="nowrap" class="qnt"><input type="text" name="count[' + art + ']" class="side_basket_qnt" value="' + item['count'] + '" data-art="' + item['art'] + '" data-value="' + item['count'] + '" autocomplete="off"' + (basket.disabled ? ' disabled="disabled"' : '') + '></td><td nowrap="nowrap" class="cost_r"><span class="side_basket_cost">' + price(item['price']) + ' р. / ' +  item['size'] + ' ' + item['format'] + '</span></td><td nowrap="nowrap">' + item['available'] + '</td><td nowrap="nowrap"><a href="#delete" class="side_basket_del"><img src="/data/img/del.gif" alt="Удалить"></a></td></tr>');

            $('#side_basket_list').append(node);
         }

         $('#side_basket_sum span').html(price(data['total']));

    }

    $('.basket-data').each(function(){
        var val = data[$(this).data('name')];
        var template = $(this).data('template');
        if (template) {
            val = template.replace('{var}', val);
        }
        $(this).val(val);
    });
}

/**
 * AFter success user auth
 * @param data
 */
function success_auth_user(data) {
    $('#holderUser').find('.fio').text(data['data']['user']['fio']).end()
                    .find('.address').text(data['data']['user']['address']).end();


    $('.user-data').each(function(){
        $(this).val(data['data']['user'][$(this).data('name')]);
    });

    $('.no-user-required').slideUp(function(){
        $('.user-required').slideDown();
    });

    $('#holderLogin').slideUp();
    $('#holderUser').slideDown();

    if (data['data']['basket'] !== undefined) {
        print_side_basket(data['data']['basket']);
    }
}

/**
 * print price
 * @param price
 */
function price(price) {
    return number_format(price, 1, ",", " ");
}

/**
 * PHPJS.ORG
 */

function empty(mixed_var) {

    var key;

    if (mixed_var === "" || mixed_var === 0 || mixed_var === "0" || mixed_var === null ||
        mixed_var === false || typeof mixed_var === 'undefined') {
        return true;
    }

    if (typeof mixed_var == 'object') {
        for (key in mixed_var) {
            return false;
        }
        return true;
    }

    return false;
}

function number_format (number, decimals, dec_point, thousands_sep) {
    // Strip all characters but numerical ones.
    number = (number + '').replace(/[^0-9+\-Ee.]/g, '');
    var n = !isFinite(+number) ? 0 : +number,
        prec = !isFinite(+decimals) ? 0 : Math.abs(decimals),
        sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep,
        dec = (typeof dec_point === 'undefined') ? '.' : dec_point,
        s = '',
        toFixedFix = function (n, prec) {
            var k = Math.pow(10, prec);
            return '' + Math.round(n * k) / k;
        };
    // Fix for IE parseFloat(0.55).toFixed(0) = 0;
    s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.');
    if (s[0].length > 3) {
        s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep);
    }
    if ((s[1] || '').length < prec) {
        s[1] = s[1] || '';
        s[1] += new Array(prec - s[1].length + 1).join('0');
    }
    return s.join(dec);
}
