var TxCart = {
    containers: $('[data-cart-container]'),
    infoContainer: $('[data-cart-info-container]'),
    viewContainer: $('.cart-view-container'),
    semaphore: true,

    showInfoWindow: false,
    multipleButtons: false,

    run: function () {

        this.partRun();

        var parentObj = this;

        this.infoContainer.each(function () {

            var infoObject = {
                Container: $(this),
                lang: $(this).data('lang'),
                parentObj: parentObj
            };

            parentObj.infoCartEvents(infoObject);

        });


        var lastObject = {};
        this.viewContainer.each(function () {

            var viewObject = {
                Container: $(this),
                lang: $(this).data('lang'),
                parentObj: parentObj
            };


            parentObj.viewCartEvents(viewObject);

            lastObject = viewObject;

        });

        this.initOtherFunctions(lastObject);

    },
    reRunButtons: function () {//daromas po ajaxo

        this.containers = $('[data-cart-container]');
        this.partRun();

    },
    partRun: function () {
        if (this.containers.length > 1) {
            this.multipleButtons = true;
        }

        var parentObj = this;
        var cartObjects = [];

        this.containers.each(function () {

            var cartObject = {
                Container: $(this),
                product_id: $(this).data('product-id'),
                lang: $(this).data('lang'),
                attributes: $(this).find('[data-txAttrSelect]'),
                parentObj: parentObj
            };

            parentObj.initCartEvents(cartObject);
            cartObjects.push(cartObject);

        });

        if (this.multipleButtons) {
            this.PrepAddToCart(cartObjects, 1);
        }
    },
    initSelects: function (multiObject) {

        if (typeof $().select2 === 'function') {


            multiObject.Container.find('.attr-radio label').each(function () {

                var text = $(this).text();
                text = $.trim(text);

                if (text.length == 7 && text.substr(0, 1) == '#') {

                    $(this).addClass('has-color');

                    $(this).html($('<span></span>').css({
                        backgroundColor: text
                    }).addClass('color-option').text(''));

                }

            });


            multiObject.Container.find('select').each(function () {

                var aa = {
                    theme: $(this).parent().data('theme'),
                    minimumResultsForSearch: Infinity,
                    templateResult: function (value) {

                        // console.log(value);

                        value.text = $.trim(value.text);

                        if (value.text.length == 7 && value.text.substr(0, 1) == '#') {


                            return $('<span></span>').css({
                                backgroundColor: value.text
                            }).addClass('color-option').text('');

                        } else {
                            return $('<span></span>').text(value.text);
                        }
                    },
                    templateSelection: function (value) {

                        //console.log(value);

                        value.text = $.trim(value.text);

                        if (value.text.length == 7 && value.text.substr(0, 1) == '#') {


                            return $('<span></span>').css({
                                backgroundColor: value.text
                            }).addClass('color-option').text('');

                        } else {
                            return $('<span></span>').text(value.text);
                        }
                    }
                };
                /*var value = $(this).find('option:first').attr('value');

                if (value == '') {
                    aa.placeholder = $(this).find('option:first').text();
                    aa.allowClear = true;
                }*/

                $(this).select2(
                    aa
                );

                //console.log( $(this).select2());

            });


        }

    },
    viewCartEvents: function (viewObject) {

        /*viewObject.Container.on('change', function () {

            viewObject.parentObj.changeView(viewObject);

        });*/
        viewObject.Container.on('change', '.new-quant input', function () {

            viewObject.parentObj.changeView(viewObject);

        });

        viewObject.Container.on('click', '.remove-new-prod', function (e) {
            e.preventDefault();

            $(this).prev('input[name="remove-product"]').val(1);
            viewObject.parentObj.changeView(viewObject);

        });
        viewObject.Container.on('click', '.set-left', function (e) {
            e.preventDefault();

            var left = $(this).data('left');

            $(this).parents('.new-quant:first').find('input').val(left);
            viewObject.parentObj.changeView(viewObject);

        });
        viewObject.Container.on('click', '.new-promo-button', function (e) {
            e.preventDefault();
            var code = $('.new-promo-input').val();
            if (code !== '') {

                viewObject.parentObj.changeView(viewObject);
            } else {

            }
        });
        viewObject.Container.on('click', '.dell-button-new', function (e) {
            e.preventDefault();
            $('.new-delivery_id').val($(this).find('input').val());

            viewObject.parentObj.changeView(viewObject);

        });
        viewObject.Container.on('change', '.delivery-sublist-select-new', function (e) {
            e.preventDefault();

            $('.new-delivery_id').val(viewObject.Container.find('.delivery-select-new:checked').val());
            $('.new-country_id').val(viewObject.Container.find('[name="country_list"]').val());
            $('.new-sublist_id').val($(this).val());

            viewObject.parentObj.changeView(viewObject);

        });
        viewObject.Container.on('change', '[name="country_list"]', function (e) {
            e.preventDefault();

            $('.new-delivery_id').val(viewObject.Container.find('.delivery-select-new:checked').val());
            $('.new-country_id').val($(this).val());

            viewObject.parentObj.changeView(viewObject);

        });

        viewObject.parentObj.changeView(viewObject);

    },

    changeView: function (viewObject) {

        viewObject.parentObj.preloader('show');

        var params = [];
        viewObject.Container.find('.cart-content .cart-product-row').each(function () {

            var element = {
                product_id: $(this).data('product_id'),
                union_id: $(this).data('union_id'),
                quantity: $(this).find('[name="new-quantity"]').val(),
                remove: $(this).find('[name="remove-product"]').val()
            };

            params.push(element);

        });

        var code = $('.new-promo-input').val();
        var delivery_id = $('.new-delivery_id').val();
        var sublist_id = $('.new-sublist_id').val();
        var country_id = $('.new-country_id').val();
        var payment_type_change = $('.payment_type_change').val();
        //dellivery

        $.post('/ajax.php', {
            action: 'CartView',
            module: 'TxCart',
            lang: viewObject.lang,
            params: params,
            code: code,
            delivery_id: delivery_id,
            sublist_id: sublist_id,
            country_id: country_id,
            payment_type_change: payment_type_change,
            t: viewObject.parentObj.getMyTime()
        }, function (data) {


            viewObject.Container.find('.message-place').empty();
            viewObject.Container.find('.cart-content').empty();
            viewObject.Container.find('.cart-form').hide();
            viewObject.Container.find('.adm-sender').hide();

            viewObject.Container.find('.cart-empty').hide();

            if (data.status) {


                viewObject.Container.find('.message-place').append(data.return.messages);
                viewObject.Container.find('.cart-content').append(data.return.cart_tpl);

                $('.end_sum_1').text(data.return.sum);


                if (data.return.delivery_price_full.hide_address == 1) {
                    $('.dell_address_info').hide();

                    $('[name$="address_is_hidden"]').val(1);
                } else {
                    $('.dell_address_info').show();
                    $('[name$="address_is_hidden"]').val(0);
                }

                if (data.return.delivery_price_full.allow_cod == 1) {
                    $('[data-cod-delivery]').parents('div:first').show();
                } else {
                    $('[data-cod-delivery]').parents('div:first').hide();
                    if ($('[data-cod-delivery]').is(':checked')) {

                        $('[data-cod-delivery]').prop('checked', false).removeAttr('checked');

                    }
                    $('[data-cod-delivery2]').removeClass('its-visible');
                }


                //data.return.sum

                if (typeof data.return.errors !== 'undefined' && data.return.errors.length > 0) {
                    /*
                     var allow_forword = true;
                     $.each(data.return.errors, function (index, value) {

                     });
 */
                    $('.form_submit_payment').addClass('disabled');

                } else {
                    $('.form_submit_payment').removeClass('disabled');

                }

                viewObject.Container.find('.cart-form').show();
                viewObject.Container.find('.adm-sender').show();
            } else {
                viewObject.Container.find('.cart-empty').show();
            }

            viewObject.parentObj.initSelects(viewObject);
            viewObject.Container.show();
            viewObject.parentObj.preloader('hide');

            if (!viewObject.parentObj.semaphore) {

                viewObject.parentObj.infoContainer.each(function () {


                    var infoObject = {
                        Container: $(this),
                        lang: $(this).data('lang'),
                        parentObj: viewObject.parentObj
                    };

                    viewObject.parentObj.changeInfo(infoObject);


                });
            } else {
                viewObject.parentObj.semaphore = false;
            }

        }, 'json');

    },

    infoCartEvents: function (infoObject) {

        infoObject.Container.on('change', function () {

            infoObject.parentObj.changeInfo(infoObject);

        });


        $('[data-cart-info-more-block]').on('click', '[data-remove-info-prod]', function (e) {

            $(this).find('[name="remove-product"]').val(1);

            e.preventDefault();

            infoObject.parentObj.changeInfo(infoObject);

        });


        infoObject.parentObj.changeInfo(infoObject);
    },

    changeInfo: function (infoObject) {

        var params = [];
        $('[data-info-cart-popup2]').find('[data-info-cart-popup2-row]').each(function () {

            var element = {
                product_id: $(this).data('product_id'),
                union_id: $(this).data('union_id'),
                quantity: $(this).data('quant'),
                remove: $(this).find('[name="remove-product"]').val()
            };

            params.push(element);

        });

        $.post('/ajax.php', {
            action: 'CartInfo',
            module: 'TxCart',
            params: params,
            lang: infoObject.lang,
            t: infoObject.parentObj.getMyTime()
        }, function (data) {


            if ($(window).width() < 768) {

                infoObject.parentObj.infoContainer.find('[data-cart-total-quant]').text(0);
            } else {

                infoObject.parentObj.infoContainer.find('[data-cart-total-quant]').text(infoObject.parentObj.infoContainer.data('empty'));
            }
            infoObject.parentObj.infoContainer.find('[data-cart-total-price]').text(0);


            var info_more_block = $('[data-cart-info-more-block]');
            info_more_block.hide();
            info_more_block.find('[data-info-cart-popup2]').remove();

            if (data.status) {
                var tmp = data.return.sum;
                if (tmp < 10)
                    tmp = "0" + tmp;


                infoObject.parentObj.infoContainer.find('[data-cart-total-quant]').text(data.return.product_count);
                infoObject.parentObj.infoContainer.find('[data-cart-total-price]').text(tmp);


                if (infoObject.parentObj.showInfoWindow && typeof data.return.popup !== 'undefined') {

                    $.fancybox.open(data.return.popup);

                    infoObject.parentObj.showInfoWindow = false;

                }

                if (typeof data.return.popup2 !== 'undefined' && infoObject.parentObj.viewContainer.length === 0) {

                    info_more_block.prepend(data.return.popup2);
                    info_more_block.show();
                }
            }

            infoObject.parentObj.initSelects(infoObject);


        }, 'json');


    },

    initCartEvents: function (cartObject) {

        if (cartObject.attributes.length > 0) {


            cartObject.attributes.on('change', function () {

                cartObject.parentObj.PrepAddToCart(cartObject, 0);

            });

        }

        if (!this.multipleButtons) {
            cartObject.parentObj.PrepAddToCart(cartObject, 0);
        }

        cartObject.Container.on('click', '[data-cart-button] a', function (e) {
            e.preventDefault();

            if (!$(this).hasClass('disabled')) {

                var attributes_values = cartObject.parentObj.generateAttributes(cartObject);

                var quant = 1;
                var quantPut = cartObject.Container.find('[data-cart-quantity] input');
                if (quantPut.length === 0) {
                    quantPut = cartObject.Container.find('[data-cart-quantity] select');
                }
                if (quantPut.length > 0 && quantPut.val() > 0) {
                    quant = parseFloat(quantPut.val());
                }


                $.post('/ajax.php', {
                    action: 'AddToCart',
                    module: 'TxCart',
                    product_id: cartObject.product_id,
                    quant: quant,
                    lang: cartObject.lang,
                    attributes: attributes_values,
                    t: cartObject.parentObj.getMyTime()
                }, function (data) {

                    if (data.return.event_status == false) {

                        cartObject.parentObj.PrepAddToCart(cartObject, 0);

                    } else {

                        cartObject.parentObj.showInfoWindow = true;
                        cartObject.parentObj.infoContainer.trigger('change');
                    }

                }, 'json');

            }

        });


        cartObject.Container.show();


    },

    DoRadioAttributes: function (cartObject) {
        if (cartObject.attributes.length > 0) {

            $(cartObject.attributes).each(function () {

                if ($(this).find('.attr-radio').length > 0) {

                    var x = $(this);
                    setTimeout(function () {

                        x.find('.attr-radio').removeClass('preloaded');

                    }, 300);

                    //console.log(cartObject.attributes.find('.attr-radio input[type="radio"]:checked'));

                    $(this).find('.attr-radio .selected').removeClass('selected');
                    var id = $(this).find('.attr-radio input[type="radio"]:checked').attr('id');

                    $(this).find('label[for="' + id + '"]').addClass('selected');

                }


            });

        }
    },
    PrepAddToCart: function (cartObject, multiple) {

        if (multiple) {
            var ajax_objects = [];


            $.each(cartObject, function (index, value) {


                // tempContainer = valueX.Container;


                var element = {};
                element.attributes_values = value.parentObj.generateAttributes(value);
                element.product_id = value.product_id;
                element.lang = value.lang;
                element.t = value.parentObj.getMyTime();


                ajax_objects.push(element);


            });
            //console.log(ajax_objects);

            $.post('/ajax.php', {
                action: 'PrepAddToCartMultiple',
                module: 'TxCart',
                ajax_objects: ajax_objects
            }, function (data) {

                $.each(cartObject, function (indexX, valueX) {

                    valueX.Container.find('.price-container, .alt-price-container, [data-cart-price] > .price, [data-cart-price] > .discount, [data-cart-price] > .user_discount').remove();
                    valueX.Container.find('[data-cart-price]').addClass('price-hidden');


                    valueX.Container.find('[data-out-of-stock-attr]').hide();
                    valueX.Container.find('[data-has-part-stock-attr]').hide();
                    valueX.Container.find('[data-has-full-stock-attr]').hide();

                    if (data.status) {


                        if (typeof data.return[valueX.product_id] !== "undefined") {


                            if (data.return[valueX.product_id].price_div !== '') {


                                valueX.Container.find('.missing-configuration').hide();

                                valueX.Container.find('[data-cart-price]').append(data.return[valueX.product_id].price_div);


                                if (data.return[valueX.product_id].quantity.status) {
                                    valueX.Container.find('[data-cart-button] a').removeClass('disabled');
                                } else {
                                    valueX.Container.find('[data-cart-button] a').addClass('disabled');
                                    valueX.Container.find('[data-out-of-stock-attr]').show();
                                }

                                if (data.return[valueX.product_id].quantity.status2) {
                                    valueX.Container.find('[data-has-full-stock-attr]').show();
                                } else {
                                    valueX.Container.find('[data-has-part-stock-attr]').show();
                                }

                                valueX.Container.find('[data-cart-price]').removeClass('price-hidden');


                                if (data.return[valueX.product_id].price_div.indexOf('hide-add-button') > -1) {
                                    valueX.Container.find('[data-cart-button] a').addClass('disabled');
                                }

                            } else {

                                valueX.Container.find('[data-cart-button] a').addClass('disabled');
                                valueX.Container.find('.missing-configuration').show();

                            }


                            if (data.return[valueX.product_id].active_union !== '') {

                                if (typeof plugins.swipers.product === 'object' && typeof plugins.swipers.product.gallery === 'object') {


                                    var index = 0;

                                    var pic = $('.product-carusel-container a[data-union-id="' + data.return[valueX.product_id].active_union + '"]');

                                    if (pic.length > 0) {

                                        index = pic.parents('.swiper-slide:first').index();


                                    } else {

                                        var union_parts = data.return[valueX.product_id].active_union.split('_');

                                        $.each(union_parts, function (index_p, value_p) {


                                            var pic = $('.product-carusel-container a[data-union-id^="' + value_p + '"]');

                                            if (pic.length > 0) {

                                                index = pic.parents('.swiper-slide:first').index();

                                                return false;
                                            }


                                        });
                                    }

                                    plugins.swipers.product.slideTo(index);


                                }


                                if (valueX.Container.find('.attr-radio').length > 0) {

                                    if (valueX.Container.find('[name="union_select"][value="' + data.return[valueX.product_id].active_union + '"]').length > 0) {

                                        //valueX.Container.find('[name="union_select"]').prop('checked', false).removeAttr('checked');
                                        //valueX.Container.find('[name="union_select"][value="' + data.return[valueX.product_id].active_union + '"]').prop('checked', true).removeAttr('checked', 'checked');


                                    } else {

                                        var attrs = data.return[valueX.product_id].active_union.split('_');

                                        valueX.Container.find('[type="radio"]').prop('checked', false).removeAttr('checked');

                                        $.each(attrs, function (index, value) {

                                            valueX.Container.find('[type="radio"][value="' + value + '"]').prop('checked', true).removeAttr('checked', 'checked');


                                        });

                                        var first_attr = attrs[0];

                                        if (data.return[valueX.product_id].all_unions !== '') {

                                            valueX.Container.find('label').addClass('disabled');

                                            $.each(data.return[valueX.product_id].all_unions, function (index2, value2) {

                                                var tmpx = value2.split('_');

                                                $.each(tmpx, function (index3, value3) {

                                                    //console.log(value3);

                                                    if (index3 > 0) {

                                                        if (tmpx[0] === first_attr) {

                                                            var id = valueX.Container.find('[type="radio"][value="' + value3 + '"]').attr('id');

                                                            valueX.Container.find('label[for="' + id + '"]').removeClass('disabled');

                                                        }

                                                    } else {

                                                        var id = valueX.Container.find('[type="radio"][value="' + value3 + '"]').attr('id');

                                                        valueX.Container.find('label[for="' + id + '"]').removeClass('disabled');

                                                    }
                                                });

                                            });

                                        }

                                    }


                                }
                                valueX.parentObj.DoRadioAttributes(valueX);

                            }


                        }


                    } else {

                        valueX.Container.find('[data-cart-button] a').addClass('disabled');
                        valueX.Container.find('.missing-configuration').show();

                    }


                    valueX.parentObj.initSelects(valueX);

                });

            }, 'json');

        } else {

            var attributes_values = cartObject.parentObj.generateAttributes(cartObject);

            /*
                        if (typeof plugins.swipers.product === 'object' && typeof attributes_values.union_select !== 'undefined') {

                            var pic = $('.product-carusel-container a[data-unionid="' + attributes_values.union_select + '"]');

                            if (pic.length > 0) {

                                var index = pic.parents('.swiper-slide:first').index();
                                plugins.swipers.product.slideTo(index);

                            }
                        }*/

            this.DoRadioAttributes(cartObject);
            $.preloader('show');
            $.post('/ajax.php', {
                action: 'PrepAddToCart',
                module: 'TxCart',
                product_id: cartObject.product_id,
                lang: cartObject.lang,
                attributes: attributes_values,
                t: cartObject.parentObj.getMyTime()
            }, function (data) {

                cartObject.Container.find('.price-container, .alt-price-container, [data-cart-price] > .price, [data-cart-price] > .discount, [data-cart-price] > .user_discount').remove();
                cartObject.Container.find('[data-cart-price]').addClass('price-hidden');


                cartObject.Container.find('[data-out-of-stock-attr]').hide();
                cartObject.Container.find('[data-has-part-stock-attr]').hide();
                cartObject.Container.find('[data-has-full-stock-attr]').hide();

                cartObject.Container.find('[data-normal-stock-attr]').hide();

                if (data.status) {

                    if (data.return.price_div !== '') {

                        cartObject.Container.find('.missing-configuration').hide();

                        cartObject.Container.find('[data-cart-price]').append(data.return.price_div);


                        if (data.return.quantity.status) {
                            cartObject.Container.find('[data-cart-button] a').removeClass('disabled');
                            cartObject.Container.find('[data-normal-stock-attr]').show();
                        } else {
                            cartObject.Container.find('[data-cart-button] a').addClass('disabled');
                            cartObject.Container.find('[data-out-of-stock-attr]').show();
                        }

                        if (data.return.quantity.status2) {
                            cartObject.Container.find('[data-has-full-stock-attr]').show();
                        } else {
                            cartObject.Container.find('[data-has-part-stock-attr]').show();
                        }

                        cartObject.Container.find('[data-cart-price]').removeClass('price-hidden');


                        if (data.return.price_div.indexOf('hide-add-button') > -1) {
                            cartObject.Container.find('[data-cart-button] a').addClass('disabled');
                        }

                    } else {

                        cartObject.Container.find('[data-cart-button] a').addClass('disabled');
                        cartObject.Container.find('.missing-configuration').show();

                    }


                    if (data.return.active_union !== '') {


                        if (typeof plugins.swipers.product === 'object' && typeof plugins.swipers.product.gallery === 'object') {

                            var index = 0;

                            var pic = $('.product-carusel-container a[data-union-id="' + data.return.active_union + '"]');

                            if (pic.length > 0) {

                                index = pic.parents('.swiper-slide:first').index();


                            } else {

                                var union_parts = data.return.active_union.split('_');

                                $.each(union_parts, function (index_p, value_p) {


                                    var pic = $('.product-carusel-container a[data-union-id^="' + value_p + '"]');

                                    if (pic.length > 0) {

                                        index = pic.parents('.swiper-slide:first').index();

                                        return false;
                                    }


                                });
                            }

                            plugins.swipers.product.slideTo(index);

                        }


                        if (cartObject.Container.find('.attr-radio').length > 0) {

                            if (cartObject.Container.find('[name="union_select"][value="' + data.return.active_union + '"]').length > 0) {

                                //cartObject.Container.find('[name="union_select"]').prop('checked', false).removeAttr('checked');
                                //cartObject.Container.find('[name="union_select"][value="' + data.return.active_union + '"]').prop('checked', true).removeAttr('checked', 'checked');


                            } else {

                                var attrs = data.return.active_union.split('_');

                                cartObject.Container.find('[type="radio"]').prop('checked', false).removeAttr('checked');

                                $.each(attrs, function (index, value) {

                                    cartObject.Container.find('[type="radio"][value="' + value + '"]').prop('checked', true).removeAttr('checked', 'checked');


                                });

                                var first_attr = attrs[0];

                                if (data.return.all_unions !== '') {

                                    cartObject.Container.find('label').addClass('disabled');

                                    $.each(data.return.all_unions, function (index2, value2) {

                                        var tmpx = value2.split('_');

                                        $.each(tmpx, function (index3, value3) {

                                            //console.log(value3);

                                            if (index3 > 0) {

                                                if (tmpx[0] === first_attr) {

                                                    var id = cartObject.Container.find('[type="radio"][value="' + value3 + '"]').attr('id');

                                                    cartObject.Container.find('label[for="' + id + '"]').removeClass('disabled');

                                                }

                                            } else {

                                                var id = cartObject.Container.find('[type="radio"][value="' + value3 + '"]').attr('id');

                                                cartObject.Container.find('label[for="' + id + '"]').removeClass('disabled');

                                            }
                                        });

                                    });

                                }

                            }


                        }
                        cartObject.parentObj.DoRadioAttributes(cartObject);

                    }


                } else {

                    cartObject.Container.find('[data-cart-button] a').addClass('disabled');

                }
                $.preloader('hide');
                cartObject.parentObj.initSelects(cartObject);


            }, 'json');

        }

    },

    getMyTime: function () {
        return new Date().getTime();
    },

    generateAttributes: function (cartObject) {

        var attributes_values = {};

        if (cartObject.attributes.length > 0) {

            cartObject.attributes.find('input:checked').each(function () {

                attributes_values[$(this).attr('name')] = $(this).val();

            });

            cartObject.attributes.find('select').each(function () {

                if ($(this).val() !== '' && $(this).val() !== 0) {

                    attributes_values[$(this).attr('name')] = $(this).val();
                }

            });

        }

        return attributes_values;

    },
    preloader: function (event) {
        $.preloader(event)
    },

    initOtherFunctions: function (viewObject) {

        var parentObj = this;

        //formos selectas
        if (typeof $().select2 === 'function') {

            $('.cart-form').find('select').each(function () {

                $(this).attr('data-theme', $(this).parent().data('theme'));
                $(this).css('width', '100%');
                //$(this).select2('destroy');
                $(this).select2({
                    theme: $(this).parent().data('theme'),
                    minimumResultsForSearch: Infinity
                });

            });
        }
        // cart.js liekanos

        $('.bank-list label').click(function () {
            $('.bank-list label').removeClass('selected');
            $(this).addClass('selected');
        });

        $(".payment_type input[type=radio]").change(function () {
            var $th = $(this);

            if ($th.val() == 'cardinity') {
                $('#sub_action').val('cardinity');
                //$('form').attr({'action':'paypal.php?action=direct'});
                $('.carddets').show();
            } else if ($th.val() == 'paypal') {
                $('#sub_action').val('process');
                $('.carddets').hide();

            } else {
                $('#sub_action').val($th.val());
                $('.carddets').hide();
            }

            $('.payment-desc > div').removeClass('its-visible');
            $('.payment-desc > div[data-type="' + $th.val() + '"]').addClass('its-visible');


            $('.payment_type_change').val($th.val());

            viewObject.parentObj.changeView(viewObject);

        });

        $('body').on('click', '.form_submit_payment', function (e) {
            e.preventDefault();

            if (!$(this).hasClass('disabled')) {


                var is_error = false;

                var the_form = $(this).parents('form:first');

                the_form.find('input[type="text"], textarea, select').each(function () {
                    if ($(this).val() == $(this).parent('div').attr('title')) {
                        $(this).val('');
                    }
                });

                var ser = the_form.serialize();


                $.post(validate_link + '?' + ser, {'sub_action': 'validate'}, function (data) {

                    if (data.ok == true) {

                        the_form.append($('<input/>').attr('type', 'hidden').attr('name', data.pref + 'validated').val(data.prefval));

                        the_form.submit();
                    } else {
                        var scroll_to = null;
                        $.each(data.errors, function (index, value) {

                            if (value !== null) {

                                if ($('input[name="' + value.key + '"]').prop('type') == 'radio' || $('input[name="' + value.key + '"]').prop('type') == 'checkbox' || $('input[name="' + value.key + '"]').prop('type') == 'hidden') {

                                    var found_element = $('input[name="' + value.key + '"], select[name="' + value.key + '"]');

                                    if (found_element.parents('.payment_type').length > 0) {

                                        found_element.each(function () {

                                            if ($(this).next('.real-error').length > 0) {
                                                $(this).next('.real-error').remove();
                                            }
                                            var real_error_text = $('[data-payment-type-error]').data('payment-type-error');

                                            $(this).after($('<div></div>').addClass('real-error').text(real_error_text));

                                        });

                                    } else if (found_element.parents('.the-rules').length > 0) {

                                        found_element.each(function () {

                                            if ($(this).next('.real-error').length > 0) {
                                                $(this).next('.real-error').remove();
                                            }
                                            var real_error_text = $('[data-rules-error]').data('rules-error');

                                            $(this).after($('<div></div>').addClass('real-error').text(real_error_text));

                                        });

                                    } else {


                                        found_element.parents('div:first').addClass('error');

                                    }



                                    if (scroll_to === null) {
                                        scroll_to = found_element;
                                    }

                                } else if (value.key === 'delivery_error') {

                                    $('.styled-select-new').addClass('error');

                                } else {

                                    var found_element = $('input[name="' + value.key + '"], select[name="' + value.key + '"]');

                                    found_element.addClass('error');

                                    found_element.each(function () {

                                        if ($(this).next('.real-error').length > 0) {
                                            $(this).next('.real-error').remove();
                                        }

                                        var field_name = $(this).attr('placeholder');
                                        var real_error_text = $('[data-real_error_text]').data('real_error_text');

                                        $(this).after($('<div></div>').addClass('real-error').text(real_error_text+' "'+field_name+'"'));

                                    });

                                    if (scroll_to === null) {
                                        scroll_to = found_element;
                                    }
                                }

                            }
                        });

                        if (scroll_to !== null) {

                            var ftop = scroll_to.offset().top-150;
                            $('body, html').animate({scrollTop: ftop + 'px'}, 200, function () {

                            });
                        }
                        /*
                        the_form.find('input[type="text"], textarea').each(function () {
                            if ($(this).val() == '') {
                                $(this).val($(this).parent('div').attr('title'));
                            }
                        });*/

                    }
                }, 'json');

            }

        });

/*
        $('.form-block input[type="text"], .form-block textarea').focus(function () {
            //console.log('zzz');
            if ($(this).val() == $(this).parent('div').attr('title')) {
                $(this).val('');
            }
        });

        $('.form-block input[type="text"], .form-block textarea').focusout(function () {
            if ($(this).val() == '') {
                $(this).val($(this).parent('div').attr('title'));
            }
        });*/

        if (typeof bing_key !== 'undefined' && bing_key !== '') {

            var body = $('body');
            body.on('change', '[name$="uzk_adresas"], [name$="uzk_miestas"]', function (e) {

                var city = $('[name$="uzk_miestas"]').val();
                var address = $('[name$="uzk_adresas"]').val();
                var zip = $('[name$="uzk_zip"]');
                var postCode = zip.val();

                if (city != '' && address != '' && (postCode == '' || postCode == zip.parent().attr('title'))) {
                    var address_link = address + ',%' + city + ',%Lietuva';


                    zip.parent().css({
                        'position': 'relative'
                    });
                    zip.after($('<div></div>').addClass('css-mini-loader-cart'));

                    $.get(
                        'https://dev.virtualearth.net/REST/v1/Locations?q=' + address_link + '&key=' + bing_key,
                        {},
                        function (data) {

                            if (data.statusCode == 200 && typeof data.resourceSets[0]) {

                                $('[name$="uzk_zip"]').val(data.resourceSets[0].resources[0].address.postalCode);

                            }

                            zip.next('.css-mini-loader-cart').remove();
                        },
                        'json'
                    );
                }

            });

        }

        //is eshop.js

        $('#perka_imone').click(function () {
            if ($(this).is(':checked')) {

                $('#fizinis_su_saskaita').removeAttr('checked').prop('checked', false);
                $('.fiz-fields').addClass('comp-hid');

                $('.company-fields').removeClass('comp-hid');
            } else {
                $('.company-fields').addClass('comp-hid');
            }

        });
        $('#fizinis_su_saskaita').click(function () {
            if ($(this).is(':checked')) {
                $('#perka_imone').removeAttr('checked').prop('checked', false);
                $('.company-fields').addClass('comp-hid');

                $('.fiz-fields').removeClass('comp-hid');
            } else {
                $('.fiz-fields').addClass('comp-hid');
            }

        });

        $('.open_lower').click(function (e) {
            e.preventDefault();

            $('.request_block').show();
        });

        $('#produktu_uzklausa').on('focus', 'input, select, textarea', function () {
            $(this).removeClass('error');
            $(this).parents().removeClass('error');
            $(this).next('.real-error').remove();

            $(this).parent().find('.real-error').remove();
            $(this).parents('.payment_type').find('.real-error').remove();
        });


        $('.fancyCart').fancybox({
            helpers: {
                media: {},
                overlay: {
                    locked: false
                }
            },
            touch: false
        });

        $('.send-cart-event').on('click', function (e) {
            e.preventDefault();

            $('.send-message').hide();
            $('.send-url').hide();

            if ($('textarea[name="user_emails"]').val() !== '') {

                parentObj.preloader('show');
                $('#send-cart-block').css('visibility', 'hidden');
                var lang = $('[data-lang]:first').data('lang');

                $.post('/ajax.php', {
                    action: 'SendAdminCarts',
                    module: 'TxCart',
                    emails: $('textarea[name="user_emails"]').val(),
                    lang: lang,
                    t: parentObj.getMyTime()
                }, function (data) {

                    //
                    $('.send-url').append(data.return);

                    $('textarea[name="user_emails"]').val('');
                    $('.send-message').show();
                    $('.send-url').show();

                    $('#send-cart-block').css('visibility', 'visible');
                    parentObj.preloader('hide');


                }, 'json');
            }

        });

        //
        $('.get-cart-link-event').on('click', function (e) {
            e.preventDefault();

            $('.send-message').hide();
            $('.send-url').hide();

            parentObj.preloader('show');
            $('#send-cart-block').css('visibility', 'hidden');
            var lang = $('[data-lang]:first').data('lang');

            $.post('/ajax.php', {
                action: 'GetAdminCartUrl',
                module: 'TxCart',
                lang: lang,
                t: parentObj.getMyTime()
            }, function (data) {

                $('.send-url').append(data.return);
                $('.send-url').show();

                $('#send-cart-block').css('visibility', 'visible');
                parentObj.preloader('hide');


            }, 'json');


        });


        if ($('form#apmoketi').length > 0) {
            $.preloader('show');
            $('#apmoketi').submit();
        }

        if ($('form[name="paypal_form"]').length > 0) {
            $('[name="paypal_form"]').submit();
        }

    }


};

TxCart.run();
