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.setHeader('Добавление в корзину');
        basketDialog.setBody("Идет добавление товара в корзину...");
        //overlay2.setFooter("End of Overlay #2");
        basketDialog.render(document.body);
    }

   // Public interface
    return {
        closeBasketDialog: function() {
            if (basketDialog) {
                basketDialog.hide();
                // Обновляем текущее окно браузера после закрытия окна "Добавление в корзину".
                // "Передергивание" окна смотрится некрасиво и нужно только тогда, когда после добавления товара
                // НЕДОСТАТОЧНО обновить на текущей странице все элементы с числом товаров в корзине
                // (class = "basketCount") и суммой цен товаров в корзине (class = "basketTotal").
                // Поэтому обновление окна закомментировано.
                // window.location.reload();
            }
        },


        basketAdd : function(productId, imgButton, amount) {
            function handleAjaxSuccess(resp) {
                // Склоняем слово "товар" по числу товаров.
                var basketCountString = resp.basketCount.toString();
                var tovarString = "товаров";
                if  (basketCountString.match(/1[0-9]$/))
                    {tovarString = "товаров"}
                else{
                    if  (basketCountString.match(/1$/))
                        {tovarString = "товар"}
                    else{
                        if  (basketCountString.match(/[2-4]$/))
                            {tovarString = "товара"}
                        else{
                            {tovarString = "товаров"}
                        }
                    }
                }

                // Пишем новый текст в окно статуса
                //getEl("basketDlgText").update("Товар добавлен в корзину.<br>Сейчас в корзине x товаров на сумму y");
                basketDialog.setBody('<p>Товар добавлен в корзину.</p>' +
                '<p>Сейчас в корзине <b>' + resp.basketCount + '</b> ' + tovarString + ' на сумму <nobr><b>' + resp.basketTotal + '</b></nobr></p>' +
                        //'<br><button id="closeBasketDlg">Закрыть</button>');
                        '<div id="closeBasket"><img id="closeBasketDlg" src="/images/btnClose.gif" /></div>');             
                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;
                }
                var basketTovar = YAHOO.util.Dom.getElementsByClassName("basketTovar", "span");
                for (var i=0; i<basketTovar.length; i++) {
                    var span = basketTovar[i];
                    span.innerHTML = tovarString;
                }

                // Заменяем кнопку добавления в корзину на неактивнеую
                imgButton.src = "/images/btnNoAddToCart.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;
        }
    };
}();

