/**
 * @author ricky
 * @description добавление товара в корзину при помощи аякса
 */
String.implement({
    times : function(num) {
        var result = '';
        num++;
        for (; num--;) {
            result += this;
        }
        return result;
    }
});

window.addEvent('domready', function() {
    var cart_element = null;
    try {
        var cart_element = $('name').getFirst().getLast().getLast();
    } catch (e) {
    }
    
    var forms = $$('form.tocart-ajax');
    
    var cart_request = new Request.JSON({
        method : 'post',
        url : '',
        onRequest : function() {
            this.options.indicator.set({
                text : 'Добавляю...',
                styles : {
                    color : 'gray'
                }
            });
        },
        onSuccess : function(responseJSON) {
            if (responseJSON.success) {
                if (this.options.form.hasClass('price-preorder')) {
                    new Element('p', {
                        styles: {
                            color: 'green'
                        },
                        text: 'Вы будете уведомлены о начале продаж'
                    }).replaces(this.options.form);
                } else {
                    cart_element.set('text', '(' + responseJSON.orderSize + ')').getParent().highlight();
                    this.options.indicator.set({
                        text : 'Добавлено!',
                        styles : {
                            color : 'green'
                        }
                    }).highlight();
                    (function() {
                        this.set({
                            text : '',
                            styles : {
                                color : ''
                            }
                        });
                    }).delay(3000, this.options.indicator);
                };
            } else {
                alert('К сожалению, не удалось добавить товар в корзину. Попробуйте еще раз');
            }
        }
    });

    // добавление в корзину для авторизованного пользователя
    function addToCart(e) {
        var evt = new Event(e);
        evt.stop();

        cart_request.options.url = this.get('action');
        cart_request.options.form = this;
        cart_request.options.indicator = this.getLast();
        cart_request.send(this.toQueryString());
    }
    
    function addToCartUnauthorized(e) {
        var evt = new Event(e);
        evt.stop();
        
        // пишем в куку инфу по товару, который захотел купить незарегенный пользователь
        Cookie.write('unreg_item_id', this.getElement('[name=itemid]').get('value'), {
            path: '/'
        });
        Cookie.write('unreg_item_qty', this.getElement('[name=qty]').get('value'), {
            path: '/'
        });
        
        location.href = '/register/';
    }
    
    // если авторизованный пользователь
    if (cart_element) {
        $each(forms, function(item) {
            item.addEvent('submit', addToCart);
        });
    } else {
        // если неавторизованный пользователь
        $each(forms, function(item) {
            item.addEvent('submit', addToCartUnauthorized);
        });
    }
});
