var Site = {
    Catalog: {
        showBasket: function(id, link, element, options) {
            var options = {
                arrangement: options.arrangement || 'left', 
                updateLinkText: options.updateLinkText || 0, 
                action: options.action || 'addition',
                top: options.top || '25px',
                left: options.left || '125px'
            };
            var o = this;
            var button    = $(element).getElement('img');
            var container = $('add-to-basket');
            
            if (container != null) container.destroy();
            
            $(element).adopt(
                container = new Element('div', {'id': 'add-to-basket'}).adopt(
                    new Element('div').adopt(
                        new Element('img', {'src': '/resources/draft/i/ajax-loader.gif', 'alt': 'Идет загрузка...'})
                    ).appendText(' Идет загрузка...')
                )
                .setStyle('top',  options.top)
                .setStyle('left', options.left)
            );
            
            new Request.HTML({update: container, onSuccess: function() {
                var f = container.getElement('form');
                var count = f.getElement('input[name=count]');
                f.getElement('input[type=text]').focus();
                
                f.addEvent('submit', function(e) {
                    new Event(e).stop();
                    
                    var jsonRequest = new Request.JSON({url: '/basket/set-item/', 
                        onComplete: function(isInBasket) {
                            if (isInBasket == 1) {
                                if (options.updateLinkText == 1) {
                                    button.setProperty('src', '/resources/draft/i/ordered.gif');
                                }
                            } else {
                                if (options.updateLinkText == 1) {
                                    button.setProperty('src', '/resources/draft/i/order.gif');
                                }
                            }
                            o.updateBasket();
                            container.destroy();
                        }
                    })
                    .post({'id': id, 'link': link, 'count': count.value});
                });
            }})
            .get('/basket/get-item/?id='+id+'&link='+link);
        },
    
        saveAndRedirect: function() {
            var container = $('add-to-basket');
            var o  = this;
            var f  = container.getElement('form');
            var id    = f.getElement('input[name=id]').value;
            var link  = f.getElement('input[name=link]').value
            var count = f.getElement('input[name=count]').value;

            var jsonRequest = new Request.JSON({url: '/basket/set-item/', 
                onComplete: function(isInBasket) {
                    container.destroy();
                    
                    if (isInBasket == 1) {
                        document.location = '/basket/';
                    }
                }
            })
            .post({'id': id, 'link': link, 'count': count});
        },
        
        updateBasket: function() {
            var basket = $('s-order');
            var myFx = new Fx.Morph(basket, {duration: 200, wait: false});
            myFx.start({'opacity': .5});
            
            new Request.HTML({update: basket, onSuccess: function() { 
                myFx.start({'opacity': 1});
            }}).get('/basket/show-container/');
        }, 
        
        deleteFromBasket: function(id, element) {
            if (confirm('Вы действительно ходите удалить этот товар из заказа?')) {
                var node    = element.parentNode.parentNode;
                var loading = $('loading-'+id);
            
                $(element).setStyle('display', 'none');
                $(loading).setStyle('display', 'inline');

                var jsonRequest = new Request.JSON({url: '/basket/del-item/', 
                    onComplete: function() {
                        node.parentNode.removeChild(node);
                        o.updateBasket();
                    }
                }).get({'id': id});
            }
        },
        
        recalcBasket: function(element) {
            var o = this;
            var count = new Array();
            var table = $('table-order');

            table.getElements('input').each(function(element){
                if (element.value == '0') $('good-id-'+element.getProperty('rel')).destroy();
                count[element.getProperty('rel')] = element.value;
            });

            var jsonRequest = new Request.JSON({url: '/basket/recalc/', 
                onComplete: function(response) {
                    var total = $('total-cost');
                    total.set('text', response);
                    o.updateBasket();
                }
            }).get({'count': count});
        }
    }
};

