Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/CS/MoneyMonkey/Scripts/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/ASP.NET/CS/MoneyMonkey/Scripts/Script.js

window.app = window.app || {};

window.app.navigator = (function () {
    return {
        navigateToTab: function (tabName) {
            var tab = pageControl.GetTabByName(tabName);
            if (tab)
                pageControl.SetActiveTab(tab);
        }
    };
})();

window.app.accounts = (function() {
    function refreshTransactionGrid(accName) {
        if(window["HiddenField"]) {
            var accId = accName.split('_')[1];
            HiddenField.Set('selectedAccount', accId ? accId : '');
            if(window.TransactionGrid)
                window.TransactionGrid.Refresh();
        }
    }
    function setAllAccountSelectedItem(accName) {
        var item = nbAllAccounts.GetItemByName(accName);
        if(item)
            nbAllAccounts.SetSelectedItem(item);
    }

    return {
        onAccountNavBarItemClick: function(s, e) {
            var accName = e.item.name;
            refreshTransactionGrid(accName);

            if(!window.nbAllAccounts)
                HiddenField.Set('selectedAccountName', accName);
            else
                setAllAccountSelectedItem(accName);

            pageControl.SetActiveTab(pageControl.GetTab(3));
        },
        onAllAccountsNavBarItemClick: function(s, e) {
            refreshTransactionGrid(e.item.name);
        },
        onAllAccountsNavBarInit: function(s, e) {
            setAllAccountSelectedItem(HiddenField.Get('selectedAccountName'));
        }
    }
})();

window.app.budgets = (function () {
    return {
        showModifyDialog: function() {
            this.prepareEditDialog("ModifyBudget", "Modify my budgets");
        },
        showModifyOverviewDialog: function() {
            this.prepareEditDialog("ModifyOverviewBudgets", "Modify my budgets on the overview page");
        },
        prepareEditDialog: function(param, header) {
            budgetsDialog.SetHeaderText(header);
            budgetsDialog.PerformCallback(param);
        },
        showEditDialog: function() {
            budgetsDialog.Show();
        },
        addBudget: function(s, e) {
            if(!app.global.showReadOnlyMessage()) {
                MainCallbackPanel.PerformCallback("AddBudget;" + e.item.name);
            }
        },
        applyModifyChanges: function(mode) {
            budgetsDialog.Hide();
            if(!app.global.showReadOnlyMessage()) {
                MainCallbackPanel.PerformCallback("ModifyBudget");
            }
        },
        applyModifyOverviewChanges: function(mode) {
            budgetsDialog.Hide();
            if(!app.global.showReadOnlyMessage()) {
                MainCallbackPanel.PerformCallback("ModifyOverviewBudget");
            }
        },
        cancelEditing: function () {
            budgetsDialog.Hide();
        },
        showAddPopup: function(s, e) {
            addBudgetPopupMenu.ShowAtElement(s.GetMainElement());
        },

        /*Mobile*/
        setEditModeOn_Mobile: function(){
            window.app.global.applyClassToElement(document.body, 'budgetEditMode');
            window.app.mobile.adjust();
        },
        setEditModeOff_Mobile: function(){
            window.app.global.removeClassFromElement(document.body, 'budgetEditMode');
            if(!app.global.showReadOnlyMessage()) {
                MainCallbackPanel.PerformCallback("ModifyBudget");
            }
        }
    };
})();
window.app.animation = (function() {
    return {
        lastPage: null,
        pageChanged: function(s, e) {
            if(this.lastPage)
                this.hide(this.lastPage);
            this.lastPage = document.getElementById("Page" + s.GetActiveTab().index);
            var _this = this;
            setTimeout(function() {
                _this.show(_this.lastPage)
            }, 10);
        },
        show: function(element) {
            element.className = "animateFadeIn";
        },
        hide: function(element) {
            element.className = "hidden";
        }
    };
})();
window.app.global = (function () {
    return {
        elementHasClass: function(element, cssClassName) {
            return element.className.indexOf(cssClassName) > -1;
        },
        applyClassToElement: function(element, cssClassName) {
            if(!this.elementHasClass(element, cssClassName)){
                element.className += " " + cssClassName;
            }
        },
        removeClassFromElement: function(element, cssClassName) {
            if(this.elementHasClass(element, cssClassName)){
                element.className = element.className.replace(cssClassName, "");
            }
        },
        showReadOnlyMessage: function() {
            if(window["ReadOnlyPopup"]) {
                ReadOnlyPopup.Show();
                return true;
            }
            return false;
        },
        hideReadOnlyMessage: function() {
            if(window["ReadOnlyPopup"])
                ReadOnlyPopup.Hide();
        }
    };
})();

window.app.transactions = (function() {
    function reloadCategoryComboItems(combo, itemsType) {
        var items = combo.cpItems[itemsType];
        combo.ClearItems();
        for(var i = 0; i < items.length; i++)
            combo.AddItem(items[i][1], items[i][0]);
    };
    function prepareEditorsInPopup() {
        prepareEditor(TitleTextBox);
        DateEdit.SetValue(new Date());
        TypeList.SetValue("expense");

        reloadCategoryComboItems(CategoryCombo, "expense");
        prepareEditor(CategoryCombo);

        prepareEditor(AmountSpinEdit);
    };
    function prepareEditor(editor) {
        editor.SetValue();
        editor.SetIsValid(true);
    }

    return {
        Grid_RowClick: function(s, e) {
            s.StartEditRow(e.visibleIndex);
        },
        onGridEndCallback: function(s, e) {
            if(s.cpIsReadOnly && app.global.showReadOnlyMessage()) {
                s.cpIsReadOnly = null;
                return;
            }

            if(s.cpReloadMainPanel) {
                s.cpReloadMainPanel = null;
                MainCallbackPanel.PerformCallback();
            }
        },
        onCategoryComboInit: function(s, e) {
            var savedValue = s.GetValue();
            var itemsType = s.cpIsGridEditor ? s.cpItemsType : "expense";

            reloadCategoryComboItems(s, itemsType);

            s.SetValue(savedValue);
        },
        onAddTransactionButtonClick: function(s, e) {
            prepareEditorsInPopup();
            AddTransactionPopup.ShowAtElement(TransactionGrid.GetMainElement());
        },
        onTypeListSelectedIndexChanged: function(s, e) {
            reloadCategoryComboItems(CategoryCombo, s.GetValue());
        },
        onUpdateLinkClick: function(s, e) {
            if(ASPxClientEdit.ValidateEditorsInContainer(AddTransactionPopup.GetMainElement())) {
                AddTransactionPopup.Hide();
                if(!app.global.showReadOnlyMessage())
                    MainCallbackPanel.PerformCallback("TransactionsGrid");
            }
        },
        onCancelLinkClick: function(s, e) {
            AddTransactionPopup.Hide();
        },
        /* Mobile */
        addNew_Mobile: function(){
            TitleTextBox.SetValue(null);
            DateEdit.SetValue(new Date());
            TypeList.SetValue("expense");
            CategoryCombo.SetValue(null);
            AmountSpinEdit.SetValue(null);
            AddTransactionPopup.Show();
            ASPxClientEdit.ClearGroup(null);
        },
        setEditModeOn_Mobile: function(){
            window.app.global.applyClassToElement(document.body, 'transactionEditMode');
            window.app.mobile.adjust();
        },
        setEditModeOff_Mobile: function(){
            if(TransactionGrid.IsEditing())
                TransactionGrid.CancelEdit();
            window.app.global.removeClassFromElement(document.body, 'transactionEditMode');
        },
        editTransaction_Mobile: function(id){
            TransactionGrid.StartEditRowByKey(id);
        },
        transactionEndCallback: function(s) {
            if(s.cpIsReadOnly && app.global.showReadOnlyMessage()) {
                s.cpIsReadOnly = null;
                return;
            }
        }
    };
})();


window.app.upcomingBills = (function() {
    return {
        onAddButtonClick: function(s, e) {
            UpcomingBillsGrid.AddNewRow();
        },
        onDeleteButtonClick: function(s, e) {
            if(!UpcomingBillsGrid.InCallback() && UpcomingBillsGrid.GetSelectedRowCount() > 0 && confirm("Confirm Delete?"))
                UpcomingBillsGrid.PerformCallback("deleteSelected");
        },

        onGridEndCallback: function(s, e) {
            if(s.cpIsReadOnly && app.global.showReadOnlyMessage()) {
                s.cpIsReadOnly = null;
                return;
            }
            if(s.cpReloadMainPanel) {
                s.cpReloadMainPanel = null;
                MainCallbackPanel.PerformCallback();
            }
        }
    };
})();