﻿angular.module('ngShared', ['ngSanitize'])
    .controller('layoutCtrl', ['$global', '$timeout', '$filter', '$scope', '$http', '$q', '$interval', '$uibModal', function ($global, $timeout, $filter, $scope, $http, $q, $interval, $uibModal) {
        $scope.isExpanded = false;
        $scope.toggleExpand = function (chartObj, isExpanded) {
            var elem = document.getElementById('fullHeader');
            var sideBar = document.getElementsByClassName('company-sidebar')[0];
            var pricePerform = document.getElementsByClassName('price-performance')[0];
            if (isExpanded) {
                $(elem).addClass('hidden').next($('.middelcontent')).css({ 'padding-top': '15px' });
                $(sideBar).addClass('hidden');
                $(pricePerform).removeAttr('class').addClass('col-lg-12 col-md-12 col-sm-12 col-xs-12 price-performance');
            } else {
                $(elem).removeClass('hidden').next($('.middelcontent')).css({ 'padding-top': '160px' });
                $(sideBar).removeClass('hidden');
                $(pricePerform).removeAttr('class').addClass('col-lg-10 col-md-10 col-sm-12 col-xs-12 price-performance');
            }
            $('#' + chartObj).highcharts().reflow();
        }
        $scope.ad_click = (id) => {
            $http({
                url: siteRoot + 'common/adclickhandler',
                method: 'POST',
                data: { 'id': id }

            }).then((res) => {
                console.log(res.data);
            });
        };

        $scope.AddToPortfolioClick = function ($event, companyId) {
            $event.preventDefault();
            let companyInfo = {};
            $http({
                url: siteRoot + 'company/getcompanyinfo',
                method: 'POST',
                data: { 'id': companyId }
            }).then((res) => {
                companyInfo = res.data;
                var modalInstance = $uibModal.open({
                    //templateUrl: '/content/theme/ng/partials/addportfoliopopup.html',
                    template: `<div class="width-300" data-company="{{companyData|json}}"><div class="popup-header"><a title="Close" class="popup-close" href="javascript:" ng-click="Close();"><i class="fa fa-times"></i></a><div class="popup-header-content"><h5 class="search-h5 color-white" style="padding:5px">{{'lblAdd'|getLabel}} ({{companyData.Company}})</h5></div></div><div class="clearfix"></div><div id="portfolioBody" class="modal-body" style="min-height:200px;padding-top:0"><div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"><div class="row"><div class="sccol"><div class="edit_port"><div class="container-fluid"><form method="POST" name="companyForm" ng-submit="companyForm.$valid && addCompanyToPortfolio(company)" novalidate><p><uib-progressbar ng-show="working" class="progress-striped active" value="dynamic" type="success"><i class="fa fa-spinner fa-spin"></i> {{'lblProcessing'|getLabel}}</uib-progressbar></p><div ng-show="success" class="alert alert-success padding-10 no-margin" role="alert"><strong ng-bind="'lblSuccess'|getLabel"></strong> {{'lblPortfolioSaveSuccessfull'|getLabel}}</div><div ng-show="info" class="alert alert-warning padding-10 no-margin" role="alert"><strong ng-bind="'lblInfo'|getLabel"></strong> <i class="fa fa-info"></i> {{infoMessage}}</div><div ng-show="error" class="alert alert-danger padding-10 no-margin" role="alert"><strong ng-bind="'lblError'|getLabel"></strong> {{'lblErrorMessage'|getLabel}}</div><input type="hidden" name="companyId" ng-model="company.companyId" ng-value="{{companyId}}" ng-required="companyId===0?true:false" ng-pattern="/^[0-9]+\.?[0-9]*$/" /><div ng-show="companyForm.$submitted || companyForm.companyId.$touched" class="validation-div"><span ng-show="companyForm.companyId.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span><span ng-show="companyForm.companyId.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidName'|getLabel}}</span></div><div class="form-group"><label for="exampleInputName2" class="labelport" ng-bind-template="{{'lblPortfolio'|getLabel}}"></label><select name="portfolioId" class="form-control2" ng-model="company.portfolioId" ng-change="ParamChanged($event)" title="{{'lblPortfolio'|getLabel}}"><option ng-repeat="c in portfolioOptions" ng-selected="PortfolioID == c.Id" value="{{c.Id}}">{{c.Text}}</option></select></div><div class="form-group"><label for="exampleInputName2" class="labelport" ng-bind-template="{{'lblTransactionType'|getLabel}}"></label><select name="transactionTypeId" class="form-control2" ng-model="company.transactionTypeId" ng-change="ParamChanged($event)" title="{{'lblTransactionType'|getLabel}}"><option ng-repeat="c in actionTypes" ng-selected="TransactionTypeID == c.TransactionTypeID" value="{{c.TransactionTypeID}}">{{c.Transaction}}</option></select></div><div class="form-group"><label for="exampleInputName2" class="labelport" ng-bind="'lblQuantity'|getLabel"></label><input type="text" class="form-controlport" ng-model="company.Quantity" name="Quantity" placeholder="{{'lblQuantity'|getLabel}}" value="" ng-required="true" title="Quantity" ng-pattern="/^[0-9]+\.?[0-9]*$/"><div ng-show="companyForm.$submitted || companyForm.Quantity.$touched" class="validation-div"><span ng-show="companyForm.Quantity.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span><span ng-show="companyForm.Quantity.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidName'|getLabel}}</span></div></div><div class="form-group"><label for="exampleInputName2" class="labelport" ng-bind="'lblSharePrice'|getLabel"></label><input type="text" class="form-controlport" ng-model="company.SharePrice" name="SharePrice" placeholder="{{'lblSharePrice'|getLabel}}" value="" ng-required="true" title="Quantity" ng-pattern="/^[0-9]+\.?[0-9]*$/" /><div ng-show="companyForm.$submitted || companyForm.SharePrice.$touched" class="validation-div"><span ng-show="companyForm.SharePrice.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span><span ng-show="companyForm.SharePrice.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidName'|getLabel}}</span></div></div><div class="form-group"><label class="labelport" ng-bind="'lblCommission'|getLabel"></label><input type="text" class="form-controlport" ng-model="company.Commission" name="Commission" placeholder="{{'lblCommission'|getLabel}}" value="" title="{{'lblCommission'|getLabel}}" ng-pattern="/^[0-9]+\.?[0-9]*$/" /><div ng-show="companyForm.$submitted || companyForm.Commission.$touched" class="validation-div"><span ng-show="companyForm.Commission.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span><span ng-show="companyForm.Commission.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidName'|getLabel}}</span></div></div><div class="col-sm-12"><div class="row sccol"><label class="col-sm-8 no-padding-left labelport" ng-bind="'lblDate'|getLabel"></label><div class="form-group no-margin-bottom"><div class='input-group date'><input onblur="" id="datepicker" type='text' name="portfolioDate" title="{{'lblDate'|getLabel}}" ng-model="company.portfolioDate" class="form-control" ng-required="company.portfolioDate.length==0?true:false" placeholder="dd/mm/yyyy" style="height:25px!important" readonly/><span class="input-group-addon" style="padding:3px 12px"><span class="fa fa-calendar"></span></span></div></div><div ng-show="companyForm.$submitted || companyForm.portfolioDate.$touched" class="validation-div"><span ng-show="companyForm.portfolioDate.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span><span ng-show="companyForm.portfolioDate.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidDate'|getLabel}}</span></div></div></div><hr class="hr-small" /><div class="space-10"></div><div class="col-sm-12 no-padding"><ul class="nav nav-pills" role="tablist"><li role="presentation" class="pull-left"><button type="submit" class="btn btn_portfolio btn-primary">Save</button></li><li role="presentation" class="pull-right"><button ng-click="Close()" type="button" class="btn btn_portfolio btn-warning pull-right">Close</button></li></ul></div></form></div></div></div></div></div></div></div><style>#ui-datepicker-div,.datepicker{z-index:1060!important;display:block}</style>`,
                    controller: 'addToPortfolioPopupForCompanyCtrl',
                    scope: $scope,
                    windowClass: 'app-modal-window',
                    resolve: {
                        'data': { data: companyInfo }
                    }
                });

            });

        }

        $scope.addCompanyToMyWatchListClick = function ($event, companyId) {
            $event.preventDefault();
            $http({
                url: siteRoot + 'home/gsaddcompanytowatchlist',
                method: 'POST',
                data: { companyId: companyId }
            }, function () {
                utility.alert($global.getResources('lblError'), '<span style="float:left; margin:0 7px 50px 0;"><i class="fa fa-trash"></i></span>' + $global.getResources('lblErrorOccured'));
            })
                .then(function (res) {
                    if (parseInt(res.data.result) > 0) {
                        $('<div></div>').dialog({
                            modal: true,
                            title: $global.getResources("lblSuccess"),
                            open: function () {
                                $(this).html($global.getResources('lblCompanyAddedToWatchList'));
                            },
                            'buttons': [
                                {
                                    text: $global.getResources("lblClose"),
                                    click: function () {
                                        $(this).dialog("close");
                                    }
                                },
                                {
                                    text: $global.getResources("lblGoToMyWatchList"),
                                    click: function () {
                                        window.location = res.data.url;
                                        $(this).dialog("close");
                                        //$uibModalInstance.close();
                                    }
                                }
                            ]
                        }).css("font-size", "14px");
                    } else {
                        utility.alert($global.getResources("lblInfo"), '<span style="float:left; margin:0 7px 50px 0;"><i class="fa fa-info-circle"></i></span>' + $global.getResources("lblYouAlreadyHveThisCompanyInWatchList"));
                    }

                });
        }

        $scope.AddSharedFundToPortfolio = function ($event, mFundID) {
            $event.preventDefault();
            $http({
                url: siteRoot + 'mutualfund/getfunddetail',
                method: 'POST',
                data: { 'mFundID': mFundID }
            }).then((res) => {
                var modalInstance = $uibModal.open({
                    //templateUrl: '/content/theme/ng/partials/AddFundToPortfolioPopup.html',
                    template: `<div class="width-300"> <div class="popup-header"> <a title="Close" class="popup-close" href="javascript:;" ng-click="Close();"><i class="fa fa-times"></i></a> <div class="popup-header-content"> <h5 class="search-h5 color-white" style="padding:5px;">{{'lblAdd'|getLabel}} ({{fundData.Name}})</h5> </div> </div> <div class="clearfix"></div> <div id="portfolioBody" class="modal-body" style="min-height:200px;padding-top:0;"> <div class="col-lg-12 col-md-12 col-sm-12 col-xs-12"> <div class="row"> <div class="sccol"> <div class="edit_port"> <div class="container-fluid"> <form method="POST" name="fundForm" ng-submit="fundForm.$valid && addSharedFundToPortfolio(fund)" novalidate> <p> <uib-progressbar ng-show="working" class="progress-striped active" value="dynamic" type="success"><i class="fa fa-spinner fa-spin"></i> {{'lblProcessing'|getLabel}}</uib-progressbar> </p> <div ng-show="success" class="alert alert-success padding-10 no-margin" role="alert"> <strong ng-bind="'lblSuccess'|getLabel"></strong> {{'lblPortfolioSaveSuccessfull'|getLabel}} </div> <div ng-show="info" class="alert alert-warning padding-10 no-margin" role="alert"> <strong ng-bind="'lblInfo'|getLabel"><i class="fa fa-info fa-2x"></i> </strong> {{infoMessage}} </div> <div ng-show="error" class="alert alert-danger padding-10 no-margin" role="alert"> <strong ng-bind="'lblError'|getLabel"></strong> {{'lblErrorMessage'|getLabel}} </div> <input type="hidden" name="MFundID" ng-model="fund.MFundID" ng-value="{{MFundID}}" ng-required="MFundID===0?true:false" ng-pattern="/^[0-9]+\.?[0-9]*$/" /> <div class="form-group"> <label for="exampleInputName2" class="labelport" ng-bind-template="{{'lblPortfolio'|getLabel}}"></label> <select name="portfolioId" class="form-control2" ng-model="fund.portfolioId" ng-change="ParamChanged($event)" title="{{'lblPortfolio'|getLabel}}"> <option ng-repeat="c in portfolioOptions" ng-selected="PortfolioID == c.Id" value="{{c.Id}}">{{c.Text}}</option> </select> </div> <div class="form-group"> <label for="exampleInputName2" class="labelport" ng-bind-template="{{'lblTransactionType'|getLabel}}"></label> <select name="transactionTypeId" class="form-control2" ng-model="fund.transactionTypeId" ng-change="ParamChanged($event)" title="{{'lblTransactionType'|getLabel}}"> <option ng-repeat="c in actionTypes" ng-selected="TransactionTypeID == c.TransactionTypeID" value="{{c.TransactionTypeID}}">{{c.Transaction}}</option> </select> </div> <div class="form-group"> <label for="exampleInputName2" class="labelport" ng-bind="'lblQuantity'|getLabel"></label> <input type="text" class="form-controlport" ng-model="fund.Quantity" name="Quantity" placeholder="{{'lblQuantity'|getLabel}}" value="" ng-required="true" title="{{'lblQuantity'|getLabel}}" ng-pattern="/^[0-9]+\.?[0-9]*$/"> <div ng-show="fundForm.$submitted || fundForm.Quantity.$touched" class="validation-div"> <span ng-show="fundForm.Quantity.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span> <span ng-show="fundForm.Quantity.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidName'|getLabel}}</span> </div> </div> <div class="form-group"> <label for="exampleInputName2" class="labelport" ng-bind="'lblUnitPrice'|getLabel"></label> <input type="text" class="form-controlport" ng-model="fund.UnitPrice" name="SharePrice" placeholder="{{'lblUnitPrice'|getLabel}}" value="" ng-required="true" title="{{'lblUnitPrice'|getLabel}}" ng-pattern="/^[0-9]+\.?[0-9]*$/" /> <div ng-show="fundForm.$submitted || fundForm.UnitPrice.$touched" class="validation-div"> <span ng-show="fundForm.SharePrice.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span> <span ng-show="fundForm.SharePrice.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidName'|getLabel}}</span> </div> </div> <div class="form-group"> <label class="labelport" ng-bind="'lblCommission'|getLabel"></label> <input type="text" class="form-controlport" ng-model="fund.Commission" name="Commission" placeholder="{{'lblCommission'|getLabel}}" value="" title="{{'lblCommission'|getLabel}}" ng-pattern="/^[0-9]+\.?[0-9]*$/" /> <div ng-show="fundForm.$submitted || fundForm.Commission.$touched" class="validation-div"> <span ng-show="fundForm.Commission.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span> <span ng-show="fundForm.Commission.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidName'|getLabel}}</span> </div> </div> <div class="col-sm-12"> <div class="row sccol"> <label class="col-sm-8 no-padding-left labelport" ng-bind="'lblDate'|getLabel"></label> <div class="form-group no-margin-bottom"> <div class='input-group date'> <input onblur="" id="datepicker" type='text' name="portfolioDate" title="{{'lblDate'|getLabel}}" ng-model="fund.portfolioDate" class="form-control" ng-required="fund.portfolioDate.length==0?true:false" placeholder="dd/mm/yyyy" style="height:25px !important;" readonly /> <span class="input-group-addon" style="padding:3px 12px;"> <span class="fa fa-calendar"></span> </span> </div> </div> <div ng-show="fundForm.$submitted || fundForm.portfolioDate.$touched" class="validation-div"> <span ng-show="fundForm.portfolioDate.$error.required" class="padding-5 alert alert-danger">{{'lblRequired'|getLabel}}</span> <span ng-show="fundForm.portfolioDate.$error.pattern" class="padding-5 alert alert-danger">{{'lblInvalidDate'|getLabel}}</span> </div> </div> </div> <hr class="hr-small" /> <div class="space-10"></div> <div class="col-sm-12 no-padding"> <ul class="nav nav-pills" role="tablist"> <li role="presentation" class="pull-left"><button type="submit" class="btn btn_portfolio btn-primary">{{'lblSave'|getLabel}}</button></li> <li role="presentation" class="pull-right"><button ng-click="Close()" type="button" class="btn btn_portfolio btn-warning pull-right">{{'lblClose'|getLabel}}</button></li> </ul> </div> </form> </div> </div> </div> </div> </div> </div></div><style> #ui-datepicker-div, .datepicker { z-index: 1060 !important; display: block;}</style>`,
                    controller: 'addSharedFundToPortfolioPopupCtrl',
                    scope: $scope,
                    windowClass: 'app-modal-window',
                    resolve: {
                        'data': { data: res.data }
                    }
                });
            });
        }
    }])

    .controller('addToPortfolioPopupForCompanyCtrl', ['$global', '$http', '$scope', '$compile', '$uibModalInstance', '$filter', 'data', '$timeout',
        function ($global, $http, $scope, $compile, $uibModalInstance, $filter, data, $timeout) {
            var self = this;
            $scope.success = false;
            $scope.error = false;
            $scope.info = false;
            $scope.infoMessage = "";
            $scope.working = false;
            $scope.PortfolioID = 0;
            $scope.TransactionTypeID = 0;
            $scope.companyData = {};
            $scope.company = {
                portfolioId: $scope.PortfolioID,
                transactionTypeId: $scope.TransactionTypeID,
                Quantity: '',
                SharePrice: '',
                Commission: '',
                portfolioDate: ''
            };
            $uibModalInstance.rendered.then(function () {
                $timeout(() => {
                    $scope.$apply();
                });

                $scope.companyData = data.data;
                initFunc();

            });
            $scope.Close = function () {
                $uibModalInstance.close();
            };

            $scope.addCompanyToPortfolio = function (company) {
                Reset();
                $("form[name=companyForm] :input").prop("disabled", true);
                $scope.working = true;
                $http({
                    url: siteRoot + 'tools/saveportfolio',
                    method: 'POST',
                    data: {
                        PortfolioID: company.portfolioId,
                        CompanyID: $scope.companyData.CompanyID,
                        SymbolTicker: $scope.companyData.Ticker,
                        Quantity: company.Quantity,
                        SharePrice: company.SharePrice,
                        Commision: company.Commission,
                        BuyDate: company.portfolioDate,
                        Note: company.Notes,
                        Transaction: company.transactionTypeId
                    }
                }, function (error) {
                    $scope.error = true;
                    $timeout(function () {
                        $scope.error = false;
                    }, 1500);
                }).then(function (resp) {
                    if (resp.data === '0') {
                        $scope.success = true;
                        $timeout(function () {
                            $uibModalInstance.close();
                        }, 1500);
                    } else if (resp.data === '-2') {
                        $scope.info = true;
                        $scope.infoMessage = $global.getResources('lblCompanyAlreadyExistInfPortfolio');
                        $timeout(function () {
                            $scope.info = false;
                            $scope.infoMessage = '';
                        }, 6000);
                    }
                }).finally(function () {
                    $("form[name=companyForm] :input").prop("disabled", false);
                    $scope.working = false;
                });
            }
            function initFunc() {
                $http({
                    url: siteRoot + 'home/GSAddCompanyToPortfolio',
                    method: 'POST'
                }).then(function (resp) {
                    $scope.portfolioOptions = resp.data.options;
                    $scope.actionTypes = resp.data.actionTypes;
                    $timeout(function () {
                        $scope.PortfolioID = $scope.portfolioOptions.firstOrDefault().Id;
                        $scope.TransactionTypeID = $scope.actionTypes.firstOrDefault().TransactionTypeID.toString();

                        $scope.company.portfolioId = $scope.PortfolioID;
                        $scope.company.transactionTypeId = $scope.TransactionTypeID;

                        $timeout(function () {
                            $("#datepicker").datepicker({
                                changeMonth: true,
                                dateFormat: 'dd/mm/yy',
                                changeYear: true
                            });
                            $('#datepicker').datepicker('setDate', 'now');
                            $scope.company.portfolioDate = $.datepicker.formatDate("dd/mm/yy", $("#datepicker").datepicker("getDate"));
                        });
                    });
                }, (error) => { console.log(error.data); }).finally(() => {
                    //$timeout(() => { $scope.$digest(); });
                });
            }
            function Reset() {
                $scope.success = false;
                $scope.error = false;
                $scope.info = false;
                $scope.infoMessage = "";
                $scope.working = false;
                $("form[name=companyForm] :input").prop("disabled", false);
            }
        }])
    .controller('addToWidgetDashboardCtrl', ['$global', '$http', '$scope', '$compile', '$uibModalInstance', '$filter', 'data', '$timeout',
        function ($global, $http, $scope, $compile, $uibModalInstance, $filter, data, $timeout) {
            var self = this;
            $scope.success = false;
            $scope.error = false;
            $scope.info = false;
            $scope.infoMessage = "";
            $scope.working = false;
            $scope.Id = 0;
            $scope.TransactionTypeID = 0;
            $scope.companyData = {};
            $scope.dashboard = {
                Id: $scope.Id,
                PortfolioId: data.portofolioId,
                Name: "",
            };
            $uibModalInstance.rendered.then(function () {
                $timeout(() => {
                    $scope.$apply();
                });
            });
            $scope.Close = function () {
                $uibModalInstance.close();
            };

            $scope.addNewDashboard = function (dashboard) {
                debugger;
                Reset();
                $("form[name=dashboardForm] :input").prop("disabled", true);
                $("#addDashboardSubmitBtn").attr("disabled", true);
                working = true;
                blockUI();
                $http({
                    url: siteRoot + 'home/InsertWidgetDashboard',
                    method: 'POST',
                    data: {
                        Name: dashboard.Name,
                        PortfolioId: data.portofolioId,
                    }
                }, function (error) {
                    $scope.error = true;
                    $timeout(function () {
                        $scope.error = false;
                    }, 1500);
                }).then(function (resp) {
                    if (resp.data === 0) {
                        $scope.success = true;
                        $timeout(function () {
                            $uibModalInstance.close(resp.data);
                            unblockUI();
                        }, 1500);
                    }
                }).finally(function () {
                    $("form[name=dashboardForm] :input").prop("disabled", false);
                    $scope.working = false;
                    unblockUI();
                });
            }
            function Reset() {
                $scope.success = false;
                $scope.error = false;
                $scope.info = false;
                $scope.infoMessage = "";
                $scope.working = false;
                $("form[name=dashboardForm] :input").prop("disabled", false);
            }
        }])
    .controller('addToPortfolioWidgetDashboardCtrl', ['$global', '$http', '$scope', '$compile', '$uibModalInstance', '$filter', 'data', '$timeout',
        function ($global, $http, $scope, $compile, $uibModalInstance, $filter, data, $timeout) {
            var self = this;
            $scope.success = false;
            $scope.error = false;
            $scope.info = false;
            $scope.infoMessage = "";
            $scope.working = false;
            $scope.Id = 0;
            $scope.TransactionTypeID = 0;
            $scope.companyData = {};
            $scope.dashboardWidget = {
                Id: $scope.Id,
                PortfolioId: data.portofolioId,
                DashboardId: data.dashboardId,
                Name: "",
            };
            $uibModalInstance.rendered.then(function () {
                $timeout(() => {
                    $scope.$apply();
                });
            });
            $scope.Close = function () {
                $uibModalInstance.close();
            };

            $scope.addNewDashboardWidget = function (dashboard) {
                debugger;
                Reset();
                $("form[name=dashboardWidgetForm] :input").prop("disabled", true);
                $scope.working = true;
                $http({
                    url: siteRoot + 'home/SaveUpdatePortfolioWidgetDashboard',
                    method: 'POST',
                    data: {
                        Name: dashboard.Name,
                        PortfolioId: data.portofolioId,
                        DashboardId: data.dashboardId,
                    }
                }, function (error) {
                    $scope.error = true;
                    $timeout(function () {
                        $scope.error = false;
                    }, 1500);
                }).then(function (resp) {
                    if (resp.data === 0) {
                        $scope.success = true;
                        $timeout(function () {
                            $uibModalInstance.close(resp.data);
                        }, 1500);
                    }
                }).finally(function () {
                    $("form[name=dashboardWidgetForm] :input").prop("disabled", false);
                    $scope.working = false;
                });
            }
            function Reset() {
                $scope.success = false;
                $scope.error = false;
                $scope.info = false;
                $scope.infoMessage = "";
                $scope.working = false;
                $("form[name=dashboardWidgetForm] :input").prop("disabled", false);
            }
        }])
    .controller('addSharedFundToPortfolioPopupCtrl', ['$global', '$http', '$scope', '$compile', '$uibModalInstance', '$filter', 'data', '$timeout',
        function ($global, $http, $scope, $compile, $uibModalInstance, $filter, data, $timeout) {
            var self = this;
            $scope.success = false;
            $scope.error = false;
            $scope.info = false;
            $scope.infoMessage = "";
            $scope.working = false;
            $scope.PortfolioID = 0;
            $scope.TransactionTypeID = 0;
            $scope.fundData = {};
            $scope.fund = {
                portfolioId: 0,
                transactionTypeId: 0,
                Quantity: '',
                UnitPrice: '',
                Commission: '',
                portfolioDate: ''
            };
            $uibModalInstance.rendered.then(function () {
                $timeout(() => {
                    $scope.$apply();
                });

                $scope.fundData = data.data;
                initFunc();
            });
            $scope.Close = function () {
                $uibModalInstance.close();
            };

            $scope.addSharedFundToPortfolio = function (fund) {
                Reset();

                $("form[name=fundForm] :input").prop("disabled", true);
                $scope.working = true;
                $http({
                    url: siteRoot + 'tools/savefundsinportfolio',
                    method: 'POST',
                    data: {
                        PortfolioID: fund.portfolioId,
                        MFundID: $scope.fundData.FundID,
                        fundQuantity: fund.Quantity,
                        fundUnitPrice: fund.UnitPrice,
                        fundCommission: fund.Commission,
                        fundDate: fund.portfolioDate,
                        fundNotes: fund.Notes,
                        fundTransactionType: fund.transactionTypeId
                    }
                }, function (error) {
                    $scope.error = true;
                    $timeout(function () {
                        $scope.error = false;
                    }, 1500);
                }).then(function (resp) {
                    if (parseInt(resp.data) > 0) {
                        $scope.success = true;
                        $timeout(function () {
                            $uibModalInstance.close();
                        }, 1500);
                    } else if (parseInt(resp.data) < 0) {
                        $scope.info = true;
                        $scope.infoMessage = $global.getResources('lblMutualFundAlreadyExistInfPortfolio');
                        $timeout(function () {
                            $scope.info = false;
                            $scope.infoMessage = '';
                        }, 6000);
                    }
                }).finally(function () {
                    $("form[name=fundForm] :input").prop("disabled", false);
                    $scope.working = false;
                });
            }
            function initFunc() {
                $http({
                    url: siteRoot + 'home/GSAddCompanyToPortfolio',
                    method: 'POST'
                }).then(function (resp) {
                    $scope.portfolioOptions = resp.data.options;
                    $scope.actionTypes = resp.data.actionTypes;
                    $timeout(function () {
                        $scope.PortfolioID = $scope.portfolioOptions.firstOrDefault().Id;
                        $scope.TransactionTypeID = $scope.actionTypes.firstOrDefault().TransactionTypeID.toString();
                        $scope.fund.portfolioId = $scope.PortfolioID;
                        $scope.fund.transactionTypeId = $scope.TransactionTypeID;
                        $timeout(function () {
                            $("#datepicker").datepicker({
                                changeMonth: true,
                                dateFormat: 'dd/mm/yy',
                                changeYear: true
                            });
                            $('#datepicker').datepicker('setDate', 'now');
                            $scope.fund.portfolioDate = $.datepicker.formatDate("dd/mm/yy", $("#datepicker").datepicker("getDate"));
                        });
                    });
                }, (error) => { console.log(error.data); });
            }
            function Reset() {
                $scope.success = false;
                $scope.error = false;
                $scope.info = false;
                $scope.infoMessage = "";
                $scope.working = false;
                $("form[name=fundForm] :input").prop("disabled", false);
            }
        }])
    .controller('newsTickerCtrl', ['$global', '$timeout', '$filter', '$scope', '$http', '$q', '$interval', function ($global, $timeout, $filter, $scope, $http, $q, $interval) {
        var elemIndex = 0;
        var totalSNews = 0;
        $scope.allSNews = [];
        $scope.sNews = {};
        $scope.newsTitle = "";
        var totalNews = 0;
        var captionLength = 0;
        var characTimeOut = 20;
        var newsTimeOut = 5000;
        var caption = "";
        var intervalID;
        $timeout(() => {
            $(".news-ticker").modernTicker({
                effect: "scroll",
                scrollType: "continuous",
                scrollStart: "inside",
                scrollInterval: 20,
                transitionTime: 300,
                autoplay: true
            });
        });

    }]);
