﻿
var Resources = { Messages: {
    PizzaNotFound: 'Pizza bulunamadı.',
    QuantityNotSet: 'Lütfen adet hanesini doldurunuz'
}
};

var CartStatusResult = {
    OpenMemberLoginModal: 0,
    OpenRegisterForm: 1,
    OpenAddressSelectionModal: 2,
    OpenStoreSelectionModal: 3,
    OpenServiceMethodModal: 4,
    OpenCustomerInfoModal: 5,
    OfferMenu: 6,
    OfferProduct: 7,
    SendToOrderComplete: 8
}

var Dominos = {};
$.extend(Dominos, {
    IsPizzaAvailable: function (osgCode, flavorCode, sizeCode) {
        var osg = Dominos.Pizza.Osgs[osgCode];
        var flavor = null;
        var size = null;
        if (osg != null)
            flavor = osg.Flavors[flavorCode];
        if (flavor != null)
            size = flavor.Sizes[sizeCode];
        return (size != null);
    },
    PricePizza: function (osgCode, flavorCode, sizeCode, modifiers) {
        var price = 0.0;
        if (Dominos.IsPizzaAvailable(osgCode, flavorCode, sizeCode)) {
            price = Dominos.Pizza.Osgs[osgCode].Flavors[flavorCode].Sizes[sizeCode];
        }
        var size = Dominos.Pizza.Sizes[sizeCode];

        if (modifiers != null) {
            for (i = 0; i < modifiers.length; i++) {
                var m = modifiers[i];
                if ((m.Code in Dominos.Pizza.Options) && m.Quantity >= 0) {
                    price += Math.floor(m.Quantity) * size.OptPrice;
                }
            }
        }
        return price;
    },
    FindProduct: function (cCode, pCode) {
        if (cCode in Dominos && pCode in Dominos[cCode].Products)
            return Dominos[cCode].Products[pCode];
        else
            return null;
    },
    HasOption: function (cCode, optionCode) {
        if ((cCode in Dominos) && ('Options' in Dominos[cCode]) && (optionCode in Dominos[cCode].Options))
            return true;
        else
            return false;
    },
    GetMenuOsgCodes: function (mCode, pIndex, catIndex) {
        var oCode = null;
        if (mCode in Dominos.Menu && Dominos.Menu[mCode].Products[pIndex] != null && Dominos.Menu[mCode].Products[pIndex].Cats[catIndex] != null && Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices) {
            var osgCodes = new ArrayList();
            for (oCode in Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices) {
                if (oCode == '[ANY]') {
                    for (_oCode in Dominos[Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].CCode].Osgs) {
                        osgCodes.Add(_oCode);
                    }
                }
                else {
                    osgCodes.Add(oCode);
                }
            }
            return osgCodes;
        }
        return null;
    },
    HasMenuOsgCode: function (mCode, pIndex, catIndex, osgCode) {
        try {
            for (oCode in Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices) {
                if (oCode == '[ANY]' || oCode == osgCode) {
                    return true;
                }
            }
        } catch (e) { }
        return false;
    },
    GetMenuOsgFlavorCodes: function (mCode, pIndex, catIndex, oCode) {
        var flavorCodes = new ArrayList();
        if (Dominos.HasMenuOsgCode(mCode, pIndex, catIndex, oCode)) {
            var flavors = null;
            var fCode = null;
            var _fCode = null;

            try {
                flavors = Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices[oCode].Flavors;
            } catch (e) { }
            if (flavors == null) {
                try {
                    flavors = Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices['[ANY]'].Flavors;
                } catch (e) { }
            }

            for (fCode in flavors) {
                if (fCode == '[ANY]') {
                    for (_fCode in (Dominos[Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].CCode].Osgs[oCode].Flavors)) {
                        var sizes = Dominos.GetMenuOsgFlavorSizes(mCode, pIndex, catIndex, oCode, _fCode);
                        if (sizes != null && sizes.length > 0) {
                            flavorCodes.Add(_fCode);
                        }
                    }
                }
                else if (fCode in (Dominos[Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].CCode].Osgs[oCode].Flavors)) {
                    var sizes = Dominos.GetMenuOsgFlavorSizes(mCode, pIndex, catIndex, oCode, fCode);
                    if (sizes != null && sizes.length > 0) {
                        flavorCodes.Add(fCode);
                    }
                }
            }
            return flavorCodes;
        }
        return null;
    },

    HasMenuOsgFlavorCode: function (mCode, pIndex, catIndex, oCode, fCode) {
        try {
            var _fCode = null;
            var osg = Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices[oCode];
            if (osg == null)
                osg = Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices['[ANY]'];
            for (_fCode in osg.Flavors) {
                if (_fCode == fCode || _fCode == '[ANY]')
                    return true;
            }

        } catch (e) { }
        return false;
    },

    GetMenuOsgFlavorSizes: function (mCode, pIndex, catIndex, oCode, fCode) {

        var sizeCodes = new ArrayList();
        var osg = null;
        var flavor = null, sCode = null, _sCode = null;
        try {
            if (Dominos.HasMenuOsgFlavorCode(mCode, pIndex, catIndex, oCode, fCode)) {
                try {
                    var osg = Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices[oCode];

                    if (osg == null)
                        osg = Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].OsgChoices['[ANY]'];
                    if (osg != null) {
                        flavor = osg.Flavors[fCode];
                        if (flavor == null)
                            flavor = osg.Flavors['[ANY]'];
                    }

                } catch (e) { }

            }
            if (flavor != null) {
                for (sCode in flavor.Sizes) {
                    if (sCode == '[ANY]') {
                        for (_sCode in Dominos[Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].CCode].Osgs[oCode].Flavors[fCode].Sizes) {
                            sizeCodes.Add(_sCode);
                        }
                    }
                    else if (sCode in Dominos[Dominos.Menu[mCode].Products[pIndex].Cats[catIndex].CCode].Osgs[oCode].Flavors[fCode].Sizes) {
                        sizeCodes.Add(sCode);
                    }
                }
                return sizeCodes;
            }
        } catch (e) { }
        return null;

    }
});


function ArrayList() {
    var _collection = new Array();
    ArrayList.prototype.Add = function (obj) {
        return _collection.push(obj);
    };

    ArrayList.prototype.Search = function (value) {
        var index = -1;
        for (var i = 0; i < _collection.length; i++)
            if (_collection[i] == value) {
                index = i;
                break;
            }
        return index;
    };

    ArrayList.prototype.SearchBy = function (key, value) {
        var index = -1;
        for (var i = 0; i < _collection.length; i++) {
            if ((key in _collection[i]) && _collection[i][key] == value) {
                var index = i;
                break;
            }
        }
        return index;
    };

    ArrayList.prototype.RemoveAt = function (from, to) {
        _collection.splice(from, (to = [0, from || 1, ++to - from][arguments.length]) < 0 ? _collection.length + to : to);
        return _collection.length;
    };

    ArrayList.prototype.RemoveAll = function () {
        _collection = new Array();
    };

    ArrayList.prototype.List = function (index) {
        return _collection[index];
    };

    return $.extend(_collection, this);
}


function ItemModifier() {
    this.Name = '';
    this.Part = '';
    this.Quantity = 0;
    this.CCode = '';
    this.Code = '';
}

function OrderItem() {
    this.CartItemID = '';
    this.Name = '';
    this.PCode = '';
    this.OCode = '';
    this.FCode = '';
    this.SCode = '';
    this.CCode = '';
    this.Quantity = 0;
    this.Price = 0.0;
    this.CustomerPrice = 0.0;
    this.Modifiers = new ArrayList();
}

function Coupon() {
    this.CartItemID = '';
    this.Code = '';
    this.Quantity = 0;
}

function CartViewer2() {
    var _divCart, _itemContainer, _cartTotal;

    var _itemTemplate = '<div class="sepetim-urunler">'
                       + '   <h3>{NAME}</h3>'
                       + '   <ul>'
                       + '       <li>{QTY} Adet</li>'
                       + '       {SNAME}'
                       + '       <li>{EXP}</li>'
                       + '   </ul>'
                       + '   <div class="sepetim-fiyat">'
                       + '       <a href="javascript:oib.ItemEditView(\'{UID}\')" class="sepetim-ref" title="Değiştir">Değiştir</a>'
                       + '       <a href="javascript:myCart.RemoveItem(\'{UID}\')" class="sepetim-del" title="Sil">Sil</a>'
                       + '       <div class="sepetim-fiyat-txt">{PRICE}</div>'
                       + '   </div>'
                       + '</div>';

    var _osgTemplate = '<div class="sepetim-urunler">'
                       + '   <h3>{OSGNAME}</h3>'
                       + '   <ul>'
                       + '       <li>{QTY} Adet</li>'
                       + '       <li>{SNAME}, {FNAME}</li>'
                       + '       {OPTS}'
                       + '   </ul>'
                       + '   <div class="sepetim-fiyat">'
                       + '       <a href="javascript:oib.ItemEditView(\'{UID}\')" class="sepetim-ref" title="Değiştir">Değiştir</a>'
                       + '       <a href="javascript:myCart.RemoveItem(\'{UID}\')" class="sepetim-del" title="Sil">Sil</a>'
                       + '       <div class="sepetim-fiyat-txt">{PRICE}</div>'
                       + '   </div>'
                       + '</div>';

    function _initDomObjects() {
        _divCart = $("#divCart");
        _itemContainer = $("#itemContainer", _divCart);
        _cartTotal = $("#cartTotal", _divCart);
    }

    function _toString(number) {
        try {
            var _num = number.toFixed(2);
            return _num.toString().replace(/\./g, ',');
        } catch (e) {
            return number;
        }

    }

    CartViewer2.prototype.SetLoading = function (msg) {
        _initDomObjects();
        if (msg)
            setLoading(_divCart, msg);
        else
            setLoading(_divCart);
    };
    CartViewer2.prototype.ResetLoading = function () {
        _initDomObjects();
        resetLoading(_divCart);
    };

    CartViewer2.prototype.View = function (cart) {
        _initDomObjects();
        _itemContainer.empty();
        if (cart != null && cart.Items.length > 0) {

            if (cart.MenuTotal() == cart.PaymentTotal()) {
                $("#isdiscount").addClass("none");
            }
            else {
                $("#isdiscount").removeClass("none");
            }

            for (var i = 0; i < cart.Items.length; i++) {
                var item = cart.Items[i];
                var strItemDom = '';
                var opts = '';

                if (item.CCode == 'Pizza') {
                    strItemDom =
					_osgTemplate.replace(/{OSGNAME}/g, item.OName)
					.replace(/{QTY}/g, item.Quantity)
					.replace(/{FNAME}/g, item.FName)
					.replace(/{SNAME}/g, item.SName)
					.replace(/{UID}/g, item.CartItemID);

                }
                else if (item.CCode == 'Sides' || item.CCode == 'GSalad') {
                    strItemDom =
					_itemTemplate.replace(/{NAME}/g, item.FName)
					.replace(/{SNAME}/g, '')
					.replace(/{QTY}/g, item.Quantity)
					.replace(/{UID}/g, item.CartItemID);
                }
                else if (item.CCode == "Wings") {
                    strItemDom =
					_itemTemplate.replace(/{NAME}/g, item.Desc)
					.replace(/{SNAME}/g, '<li>' + item.SName + '</li>')
					.replace(/{QTY}/g, item.Quantity)
					.replace(/{UID}/g, item.CartItemID);
                }
                else {
                    strItemDom =
					_itemTemplate.replace(/{NAME}/g, item.FName)
					.replace(/{SNAME}/g, '<li>' + item.SName + '</li>')
					.replace(/{QTY}/g, item.Quantity)
					.replace(/{UID}/g, item.CartItemID);
                }

                if (item.Explanation != null && item.Explanation != "") {
                    strItemDom = strItemDom.replace(/{EXP}/g, '<li>' + item.Explanation + "</li>");
                }
                else {
                    strItemDom = strItemDom.replace(/{EXP}/g, "");
                }

                if (cart.AutoCalculate || cart.IsCalculated) {

                    if (parseFloat(parseFloat(item.CustomerPrice).toFixed(2)) < parseFloat(parseFloat(item.Price).toFixed(2)) && item.SoldOnlyWithCoupon == false) {
                        strItemDom = strItemDom.replace(/{PRICE}/g, _toString(item.CustomerPrice) + ' TL <span class="urunFiyatToplam line-th">' + _toString(item.Price) + 'TL</span>');
                    }
                    else {
                        strItemDom = strItemDom.replace(/{PRICE}/g, _toString(item.CustomerPrice) + ' TL');
                    }
                }
                else {
                    strItemDom = strItemDom.replace(/{PRICE}/g, "");
                }


                if (item.Modifiers != null && item.Modifiers.length > 0) {

                    for (var j = 0; j < item.Modifiers.length; j++) {
                        var modifier = item.Modifiers[j];
                        if (j > 0) {
                            opts += ',';
                        }
                        if (modifier.Quantity == 0)
                            opts += '<span class="line-th">' + Dominos[item.CCode].Options[modifier.Code] + '</span>';
                        else
                            opts += Dominos[item.CCode].Options[modifier.Code];

                    }
                    strItemDom = strItemDom.replace(/{OPTS}/g, "<li>" + opts + "</li>");
                }
                strItemDom = strItemDom.replace(/{OPTS}/g, "");
                _itemContainer.append(strItemDom);
            }

            if (cart.AutoCalculate || cart.IsCalculated) {
                if (cart.MenuTotal() > cart.PaymentTotal()) {
                    _cartTotal.html(_toString(cart.PaymentTotal()) + ' TL' + '<span class="sepetToplam line-th">' + _toString(cart.MenuTotal()) + ' TL</span>');
                }
                else {
                    _cartTotal.html(_toString(cart.PaymentTotal()) + ' TL');
                }

                $("#btnNext, #favouritecontainer, #totalcontainer").show();
            }
            else {
                _cartTotal.html("");
                $("#btnNext, #favouritecontainer, #totalcontainer").hide();

            }
            $('#btnEmpty').show();

            if (!cart.AutoCalculate && !cart.IsCalculated) {
                $("#btnCalculate").show();
                $("#btnNext, #favouritecontainer, #totalcontainer").hide();
            }
            else {
                $("#btnCalculate").hide();
                $("#btnNext, #favouritecontainer, #totalcontainer").show();

            }

            $(".siparis-tamamla").show();

        }
        else {
            if ( IsOpen() == false ) {
                _itemContainer.html('<p>' + StoreClosedMessage + '</p>');
            }
            else {
                _itemContainer.html('<p>Sepetinizde ürün bulunmamaktadır.</p>');
            }
            _cartTotal.html('');
            $('#btnEmpty').hide();
            $("#btnNext, #favouritecontainer, #totalcontainer").hide();
            $("#btnCalculate").hide();


            $(".siparis-tamamla").hide();

        }
    };
}


function Cart(viewer) {
    // private
    var _viewer = viewer;
    var _cart = this;
    var _menuTotal = 0.0;
    var _paymentTotal = 0.0;
    var _minimumPrice = 0.0;
    this.Items = new ArrayList();

    function _view() {
        if (_viewer != null && 'View' in _viewer) {
            viewer.View(_cart);
        }
    }

    function _bind(resp) {
        _cart.Items = new ArrayList();
        if (resp.Items != null && resp.Items.length > 0) {
            for (var i = 0; i < resp.Items.length; i++) {
                _cart.Items.Add(resp.Items[i]);
            }
        }
        _cart.IsCalculated = resp.IsCalculated;
        _cart.AutoCalculate = resp.AutoCalculate;
        _minimumPrice = resp.MinimumPrice;
        _menuTotal = resp.MenuTotal;
        _paymentTotal = resp.PaymentTotal;
        _view();


    }
    Cart.prototype.MinimumPriceOk = function () {
        return _paymentTotal >= _minimumPrice;
    }

    Cart.prototype.Refresh = function () {

        $.Page.GetCartDetails.Callback = function (wsResult) {
            _viewer.SetLoading();
            if (wsResult.Succeed == true) {
                var response = wsResult.Response;
                if (response != null) {
                    _bind(response);
                }
            }
            else {
            }
            $('.sepetim-content .sepetim-urunler:last').addClass('sepetim-urunler-last');
            _viewer.ResetLoading();
        };
        $.Page.GetCartDetails();
    }

    Cart.prototype.Calculate = function () {
        _viewer.SetLoading("Hesaplanıyor...");
        $.Page.Calculate.Callback = function (wsResult) {
            if (wsResult.Succeed == true) {
                var response = wsResult.Response;
                if (response != null) {

                    _bind(response);
                    if (!response.AutoCalculate && !response.IsCalculated) {
                        alert("Fiyat hesaplanamadı. Tekrar deneyiniz");
                    }

                }
            }
            else {
            }
            _viewer.ResetLoading();
        };
        $.Page.Calculate();
    }



    Cart.prototype.AddItem = function (item, modal, successCallback) {
        if (item.Quantity <= 0) {
            alert('Lütfen ürün adetini giriniz.');
            return false;
        }
        try {
            if ((item.CCode == 'Pizza' && Dominos.IsPizzaAvailable(item.OCode, item.FCode, item.SCode)) || Dominos.FindProduct(item.CCode, item.PCode)) {
                if (modal)
                    setLoading(modal);

                $.Page.AddOrderItem.Callback = function (wsResult) {
                    if (wsResult.Succeed == true && wsResult.Response != null) {
                        var response = wsResult.Response;
                        _bind(response);
                        if ($.isFunction(successCallback)) {
                            successCallback.apply(null);
                            return;
                        }

                        if (modal) modal.dialog("close");

                    }
                    else {
                        alert(wsResult.Message);
                    }
                    if (modal) resetLoading(modal);
                };
                $.Page.AddOrderItem(item);

            }
            else
                alert('Ürün bulunamadı.');
        }
        catch (e) {
            alert(e + 'Ürün eklenemedi.');
        }
        return false;
    };

    Cart.prototype.UpdateItem = function (itemId, item, modal) {
        if (item.Quantity <= 0) {
            alert('Lütfen ürün adetini giriniz.');
            return false;
        }
        var index = _cart.Items.SearchBy('CartItemID', itemId);
        if (index > -1) {
            try {
                if ((item.CCode == 'Pizza' && Dominos.IsPizzaAvailable(item.OCode, item.FCode, item.SCode)) || Dominos.FindProduct(item.CCode, item.PCode)) {
                    if (modal)
                        setLoading(modal, "Ürün güncelleniyor...");
                    $.Page.UpdateOrderItem.Callback = function (wsResult) {
                        if (wsResult.Succeed == true && wsResult.Response != null) {
                            var response = wsResult.Response;
                            _bind(response);
                            if (modal)
                                modal.dialog("close");
                        }
                        else {
                            alert(wsResult.Message);
                        }
                        if (modal)
                            resetLoading(modal);
                    };
                    $.Page.UpdateOrderItem(itemId, item);
                }
                else
                    alert('Ürün bulunamadı.');
            }
            catch (e) {
                alert('Ürün güncellenemedi.');
            }
        }

        return false;
    };

    Cart.prototype.RemoveItem = function (itemId) {
        var index = _cart.Items.SearchBy('CartItemID', itemId);
        var removed = null;
        if (index > -1) {
            _viewer.SetLoading("Ürün siliniyor...");
            $.Page.DeleteOrderItem.Callback = function (wsResult) {
                if (wsResult.Succeed == true && wsResult.Response != null) {
                    var response = wsResult.Response;
                    _bind(response);
                }
                else {
                    alert(wsResult.Message);
                }
                _viewer.ResetLoading();
            };
            $.Page.DeleteOrderItem(itemId);
        }

    };
    Cart.prototype.FindItem = function (itemId) {
        var index = _cart.Items.SearchBy('CartItemID', itemId);
        if (index > -1)
            return _cart.Items[index];
    };

    Cart.prototype.AddCoupon = function (coupon, items, modal) {
        try {
            var blnCheckResult = true;
            if (!(coupon.Code in Dominos.Menu)) {
                blnCheckResult = false;
            }
            for (var i = 0; i < items.length; i++) {
                var item = items[i];
                if (item.Quantity <= 0) {
                    blnCheckResult = false;
                }
                try {
                    if (!(item.CCode == 'Pizza' && Dominos.IsPizzaAvailable(item.OCode, item.FCode, item.SCode)) && !Dominos.FindProduct(item.CCode, item.PCode)) {
                        blnCheckResult = false;
                    }
                }
                catch (e) {
                    blnCheckResult = false;
                }
            }
            if (blnCheckResult) {

                if (modal)
                    setLoading(modal);
                $.Page.AddCouponItems.Callback = function (wsResult) {
                    if (wsResult.Succeed == true && wsResult.Response != null) {
                        var response = wsResult.Response;
                        _bind(response);
                        if (modal != null)
                            modal.dialog("close");
                    }
                    else {
                        alert(wsResult.Message);
                    }
                    if (modal)
                        resetLoading(modal);
                };
                $.Page.AddCouponItems(items);
            }
            else {
                alert('Menü eklenirken hata oldu.');
            }
        } catch (e) {
            alert("Menü eklenirken hata oldu.");
            return;
        }
        _view();
    };


    Cart.prototype.MenuTotal = function () {
        return _menuTotal;
    };

    Cart.prototype.MinimumPrice = function () {
        return _minimumPrice;
    };
    Cart.prototype.PaymentTotal = function () {
        return _paymentTotal;
    };

    Cart.prototype.IsCalculated = function () {
        return _cart.IsCalculated || _cart.AutoCalculate;
    }

    Cart.prototype.IsEmpty = function () {
        if (_cart.Items == null || _cart.Items.length == 0)
            return true;
        else return false;
    };


    Cart.prototype.Checkout = function () {
        throw new Error('Not implemented!');
        _view();

    };
    Cart.prototype.Empty = function () {
        $.Page.Empty.Callback = function (wsResult) {
            _viewer.SetLoading();
            if (wsResult.Succeed == true) {
                var response = wsResult.Response;
                if (response != null && response == true) {
                    _cart.Items = new ArrayList();
                    _menuTotal = 0.0;
                    _paymentTotal = 0.0;
                    _view();
                }
                else {
                    alert('Sepet boşaltılamadı.');
                }
            }
            else {
                alert(wsResult.Message);
            }
            _viewer.ResetLoading();
        };
        $.Page.Empty();
    };

    Cart.prototype.CartStatusControl = function () {

        setLoading($(".cf"), "Lütfen bekleyin.");

        $.Page.CartStatusControl.Callback = function (e) {

            if (e.Succeed) {

                switch (e.Response) {
                    case CartStatusResult.OpenMemberLoginModal:
                        $("#uyeModal").dialog("open");
                        break;
                    case CartStatusResult.OpenRegisterForm:
                        window.location.href = 'uyelik-formu.aspx?redirect=menu';
                        break;
//                    case CartStatusResult.OpenAddressSelectionModal:
//                        alert("Şiparişinizi size ulaştırabilmemiz için Teslimat Adresini belirtmelisiniz.");
//                        break;
//                    case CartStatusResult.OpenStoreSelectionModal:
//                        alert("Adresinize gönderim yapan şubeler arasında seçim yapmalısınız.");
//                        break;
//                    case CartStatusResult.OpenServiceMethodModal:
//                        alert("Teslimat tipi seçmelisiniz.");
//                        break;
//                    case CartStatusResult.OpenCustomerInfoModal:
//                        $("#uyeModal").dialog("open");
//                        break;
//                    case CartStatusResult.OfferMenu:
//                    case CartStatusResult.OfferProduct:

////                        $.Page.OfferProduct.Callback = function (e) {

////                            console.log(e);

////                        }
////                        $.Page.OfferProduct();

////                        break;
                    case CartStatusResult.SendToOrderComplete:
                        window.location.href = 'siparisi-tamamla.aspx';
                        break;
                }

            }

            resetLoading($(".cf"));

        };

        $.Page.CartStatusControl();

    }

    Cart.prototype.GetOffer = function (successCallback) {
        $.Page.GetProductOffer.Callback = function (wsResult) {
            _viewer.SetLoading();
            if (wsResult.Succeed == true && wsResult.Response != null) {

                var offerItem = wsResult.Response;

                var offerItemModal = $("#offerItemModal");
                var lblOfferItemDesc = $("#lblOfferItemDesc", offerItemModal);
                var lblOfferItemName = $("#lblOfferItemName", offerItemModal);
                var lblOfferItemPrice = $("#lblOfferItemPrice", offerItemModal);
                var offerItemQuantity = $("#offerItemQuantity", offerItemModal);
                var imgOfferItem = $("#imgOfferItem", offerItemModal);
                var imgSrc = "about:blank";
                switch (offerItem.CCode) {
                    case "Pizza":
                        imgSrc = webRoot + "/pizzaosgphoto/" + offerItem.OCode + "/small/view.aspx";
                        break;
                    case "Bread":
                        imgSrc = webRoot + "/breadphoto/" + offerItem.PCode + "/small/view.aspx";
                        break;
                    case "Sides":
                        imgSrc = webRoot + "/sidesphoto/" + offerItem.PCode + "/small/view.aspx";
                        break;
                    case "Drinks":
                        imgSrc = webRoot + "/drinksphoto/" + offerItem.PCode + "/small/view.aspx";
                        break;
                    case "Wings":
                        imgSrc = webRoot + "/wingsphoto/" + offerItem.PCode + "/small/view.aspx";
                        break;

                }
                imgOfferItem.attr('src', imgSrc);

                offerItemQuantity.unbind().keydown(onlyNumber).val('1');
                if (offerItem.Desc == null || offerItem.Desc == '')
                    $("#divOfferItemContainer", offerItemModal).hide();
                else {
                    $("#divOfferItemContainer", offerItemModal).show();
                    lblOfferItemDesc.html('').html(offerItem.Desc);
                }

                var offerItemName = "";
                if (offerItem.CCode == 'Pizza') {
                    offerItemName = offerItem.OName + ' (' + offerItem.SName + ', ' + offerItem.FName + ')';

                }
                else if (offerItem.CCode == 'Sides' || offerItem.CCode == 'GSalad') {
                    offerItemName = offerItem.FName;
                }
                else {
                    offerItemName = offerItem.FName + ' (' + offerItem.SName + ')';
                }
                lblOfferItemName.html('').html(offerItemName);
                lblOfferItemPrice.html('').html(offerItem.Price.toFixed(2).toString().replace(/\./g, ',') + ' TL');

                offerItemModal.dialog('option', 'item', offerItem).dialog('option', 'callback', successCallback).dialog('option', 'title', "Aşağıdaki ürünü de sepetinize eklemek ister misiniz?").dialog('open');
                $("button:eq(1)", offerItemModal.next()).addClass('btnSiparisiTamamla').text(' ');
                $("button:eq(0)", offerItemModal.next()).css("float", "left").addClass('btnUrunEkle').text(' ');

            }
            else {
                if ($.isFunction(successCallback)) successCallback.apply(null);
            }
            _viewer.ResetLoading();
        };
        $.Page.GetProductOffer();
    }

    $(document).ready(_cart.Refresh);
}
