var ShopManager = function () {
    var basketDialog; // Панель для показа добавления в корзину
    var pingTimeout = 1000*60*5;


    function createBasketDialog() {
        basketDialog = new YAHOO.widget.Overlay("basket", { fixedCenter:true,
                                                              visible:false,
                                                              width:"300px" } );
        basketDialog.setHeader('<table align="right" cellpadding="0" cellspacing="0"><tr><td><a href="javascript:ShopManager.closeBasketDialog();"><img src="/img/close.gif" height="16" width="16" border="0" title="Закрыть окно"></a></td></tr></table>Добавление в корзину');
        basketDialog.setBody("Идет добавление товара в корзину...");
        //overlay2.setFooter("End of Overlay #2");
        basketDialog.render(document.body);
    }

   // Public interface
    return {
        closeBasketDialog: function() {
            if (basketDialog) {
                basketDialog.hide();
            }
        },


        basketAdd : function(productId, imgButton, amount) {
            function handleAjaxSuccess(resp) {
                // Пишем новый текст в окно статуса
                //getEl("basketDlgText").update("Товар добавлен в корзину.<br>Сейчас в корзине x товаров на сумму y");
                basketDialog.setBody("Товар добавлен в корзину.<br>" +
                "Сейчас в корзине товаров <b>" + resp.basketCount +"</b> на сумму <b>" + resp.basketTotal + "</b> руб."
                   +"<br/><a href='/shop/basket.ftl'>Перейти в корзину&nbsp;<img src='/img/goToBasket.gif'></a>"     

                        );
                //document.getElementById("closeBasketDlg").onclick=ShopManager.closeBasketDialog;
                
                // Находим на странице все упоминания статуса корзины и обновляем их.
                var basketCounts = YAHOO.util.Dom.getElementsByClassName("basketCount", "span");
                for (var i=0; i<basketCounts.length; i++) {
                    var span = basketCounts[i];
                    span.innerHTML = resp.basketCount;
                }
                var basketTotals = YAHOO.util.Dom.getElementsByClassName("basketTotal", "span");
                for (var i=0; i<basketTotals.length; i++) {
                    var span = basketTotals[i];
                    span.innerHTML = resp.basketTotal;
                }
                
                // Заменяем кнопку добавления в корзину на неактивнеую
                imgButton.src = "/images/spacer.gif";
                imgButton.title = "Товар уже добавлен в корзину";
                imgButton.onclick = function() {return false;};
                imgButton.style.cursor = "auto";
            }
            if (!basketDialog) {
                createBasketDialog();
            }
            basketDialog.show();
            var params = "productId=" + productId;
            if (amount) {
                params = params + "&amount=" + amount;
            } else {
                var amountInput = document.getElementById("amount_" + productId);
                if (amountInput) {
                    amount = amountInput.value;
                    params = params + "&amount=" + amount;
                }
            }
            AjaxErrorHandler.JSONRequest("POST", "/shop/json/addToBasket.json",
                handleAjaxSuccess, params);
            return false;
        }
    };
}();


