// t parametresi model nesnesini temsil eder
// t yi parametre olarak alırsak model nesnesinin bütün özelliklerine erişebiliriz.

var MasalarBottomNavigation = function (t) {
    var items = [];
    switch (t.SelectedMode()) {
        case modes.user:
            break;
        case modes.mutfak:
            items.push(NavigationModel(icons.search, function () { t.AdisyonGetir() }, "Sipariş Listesi", css.col_12 + css.noPadding));
            break;
        case modes.kasiyer:
            items.push(NavigationModel(icons.search, function () { t.AdisyonGetir() }, "Sipariş Listesi", css.col_12 + css.noPadding));
            break;
        case modes.garson:
            items.push(NavigationModel(icons.search, function () { t.AdisyonGetir() }, "Adisyon", css.col_3 + css.noPadding));
            items.push(NavigationModel(icons.transfer, function (data, event) { t.transfer(); }, "Transfer", css.col_3 + css.noPadding));
            items.push(NavigationModel(icons.combine, function (data, event) { t.combine(); }, "Birleşim", css.col_3 + css.noPadding));
            items.push(NavigationModel(icons.plus_white, function () { t.LoadBefore(); }, "Sipariş", css.col_3 + css.noPadding));
            break;
        default:
            break;
    }
    return items;
}
var TransferBottomNavigation = function (t) {
    var items = [];
    switch (t.SelectedMode()) {
        case modes.user:
            break;
        case modes.mutfak:
            items.push(NavigationModel(icons.search, function () { t.AdisyonGetir() }, "Sipariş Listesi", css.col_12 + css.noPadding));
            break;
        case modes.kasiyer:
            items.push(NavigationModel(icons.search, function () { t.AdisyonGetir() }, "Sipariş Listesi", css.col_12 + css.noPadding));
            break;
        case modes.garson:
            items.push(NavigationModel(icons.selected, function () { t.TransferType == "Transfer" ? t.transferComplate() : t.combineComplate() }, "Transfer Et", css.col_12 + css.noPadding));
            break;
        default:
            break;
    }
    return items;
}
var CartBottomNavigation = function (t) {
    var items = [];
    // db den gerekli ayarları oku sonrasında ne olacağına karar ver şimdilik ikiside aktif olsun
    if (true) {
        // icons.send
        if (model.SelectedMode() !== modes.user) {
            items.push(NavigationModel(icons.send, function () { t.Finish(); }, "Siparişleri gönder", css.col_12));
            return items;
        } else {
            var length = 0;
            // 1 ise sadece adisyonu gönderebilir
            t.AppConfig["USEADD"] == "1" ? length += 1 : null;
            // 2 ise sadece adisyonu gönderebilir
            t.AppConfig["USECALLGARSON"] == "1" ? length += 2 : null;
            if (length == "1") {
                items.push(NavigationModel(icons.send, function () { t.Finish(); }, "Siparişleri gönder", css.col_12));
                return items;
            } else if (length == "2") {
                items.push(NavigationModel(icons.garsonCagir, function () { t.CallGarson(); }, "Garsonu çağır", css.col_12));
                return items;
            }
                // 3 ise ikisinide yapabilir.
            else if (length == "3") {
                items.push(NavigationModel(icons.garsonCagir, function () { t.CallGarson(); }, "Garsonu çağır", css.col_6));
                items.push(NavigationModel(icons.send, function () { t.Finish(); }, "Siparişleri gönder", css.col_6));
                return items;
            }
            else {
                if (model.SelectedMode() !== modes.user) {
                    items.push(NavigationModel(icons.send, function () { t.Finish(); }, "Siparişleri gönder", css.col_12));
                }
                return items;
            }
        }
    }
    return items;
}

// uygumanın farklı modlarında dinamik ürün detay bottom navigasyonu oluşturmak için kullanılır.
var DetailBottomNavigation = function (t) {
    var items = [
        NavigationModel(icons.add, function (data, event) { t.AddToBasket(t.AddToBasketFromDetail()); }, buttons.addToBasket, t.SelectedMode() !== modes.user ? css.col_6 : css.col_12)
    ]
    // eğer uygulama modes.user dışında kullanan biri varsa (modes.garson, modes.mutfak personeli, modes.kasiyer) bu yeteneğe de sahip olsun.
    if (t.SelectedMode() !== modes.user) {
        items.unshift(NavigationModel(icons.edit, function () { t.Edit(); }, buttons.edit, css.col_6))
    }
    return items;
}

var AdisyonBottomNavigation = function (t) {
    var items = [];
    switch (t.SelectedMode()) {
        case modes.garson:
            items = GarsonBottomNavAdisyon(t);
            break;
        case modes.mutfak:
            items.push(NavigationModel(icons.empty, function () { t.OrderComplate(); }, "Sipariş Hazır", css.col_12 + css.noPadding));
            break;
        case modes.kasiyer:
            items = KasiyerBottomNavAdisyon(t);
            break;
        case modes.user:
            items.push(NavigationModel(icons.empty, function () { t.CallGarson(); }, "Hesabı kapatmak istiyorum", css.col_12))
            break;
        default:
            items = [];
            break;
    }
    return items;
};

var GarsonBottomNavAdisyon = function (t) {
    var items = [];
    if (t.PaymentTypes() && t.PaymentTypes().length == 0) {
        return items;
    } else {
        t.PaymentTypes().forEach(function (item, index) {
            items.push(NavigationModel(icons.empty, function () { t.AdisyonKapat(item.key); }, item.key, css.col_4 + css.noPadding));
        })
        return items;
    }
    return items;
}

var KasiyerBottomNavAdisyon = function (t) {
    var items = [];
    if (t.PaymentTypes() && t.PaymentTypes().length == 0) {
        return items;
    } else {
        t.PaymentTypes().forEach(function (item, index) {
            var _css = css.col_4 + css.noPadding;
            items.push(NavigationModel(icons.empty, function () { t.AdisyonKapat(item.key); }, item.key, _css));
        });
        return items;
    }
    return items;
}

var AdminBottomNavigation = function (t) {
    var items = [];
    if (t.EditableObejct()) {
        items.push(NavigationModel(icons.cancel, function () { console.log("iptal"); }, buttons.cancel, css.col_6));
        items.push(NavigationModel(icons.save, function () { t.Save(); }, buttons.save, css.col_6));
    }
    return items;
}

var EditBottomNavigation = function (t) {
    var items = [];
    items.push(NavigationModel(icons.cancel, function () { t.Navigation(screens.detail_screen); }, buttons.cancel, css.col_6));
    items.push(NavigationModel(icons.save, function () { t.Save(); }, buttons.save, css.col_6));          
    return items;
}

var GroupBottomNavigation = function (t) {
    var items = [];
    items.push(NavigationModel(icons.search, function () { t.AdisyonGetir(); }, "Hesap göster", css.col_12));
    //items.push(NavigationModel(icons.garsonCagir, function () { t.CallGarson(); }, "Garsonu çağır", css.col_6));
    return items;
}