﻿AGBB.AppStockStatistics = AGBB.extend
({
    //url da load
    ulrLoad: [],
    checkLoad: function(url) {
        for (var i = 0; i < this.ulrLoad.length; i++) {
            if (url == this.ulrLoad[i])
                return true;
        }
        return false;
    },
    removeUrlLoad: function(url) {
        this.ulrLoad = $.grep(this.ulrLoad, function(n, i) {
            return n != url;
        });
    },
    insertUrlLoad: function(url) {
        if (!this.checkLoad(url))
            this.ulrLoad.push(url);
    },
    /* tham so tong quat*/
    path: "/DesktopModules/AG.StockStatistics/",
    content: "divStatisticContent",
    //Index
    INDEX: [],
    index: 'VNIndex',
    /* ket thuc tham so tong qua*/
    /* tham so cho bang*/
    // Du lieu json chua cac cot
    jsonTableHeader: "",
    // Co cot
    iCountColume: 0,
    // Du lieu text chua content table
    tableData: "",
    // mang chua du lieu cua table
    arrayTableData: "",
    // Tong so phan tu
    iTotalItems: 0,
    // So phan tu trong trang
    iCountItemInPage: 30,
    // So trang
    iNumberPage: 0,
    // iFrom
    iFrom: 0,
    // iTo
    iTo: 19,
    iCurrentPage: 1,
    //Truong xap xep
    iSort: 0,
    //Kieu sap xep
    typeSort: "asc",
    arrIndex: [-1, 1, 18, 2, 5, 6, 19, 20, 21, 22, 23, 24, 7, 8, 9, 10, 11, 12, 13, 14],
    arrIndexClass: [-1, 1, 18, 2, 5, 6, 19, 20, 21, 22, 23, 24, 7, 8, 9, 10, 11, 12, 13, 14],
    iLink: 1,
    /* ket thuc tham so cho bang*/
    nameClass: "",
    tdHead: 'tdStatisticHoseHead_',
    tdBody: 'bodyStatisticHoseData',
    contentPage: 'divStatisticHosePage',
    pathIndex: '/Handler/GetStatisticIndex.ashx',
    pathData: '/Handler/GetStatisticHOSE.ashx',
    getPathData: function() {
        var that = eval(this.nameClass);
        return that.pathData;
    },
    getPathIndex: function() {
    },
    // Ngày
    dCurrent: '',
    // Index gia tri so voi datasource

    loader: $('<div id="loader"><img src="/DesktopModules/AG.StockStatistics/loading.gif" alt="loading..." /></div>').css({ position: "absolute", top: "4em", left: "4em" }),
    /*
    Các trang:HOSE,HNX,UPCOM,FOREIGN,BOND
    <span id="spanStatisticMenuHOSE"></span>
    <span id="spanStatisticMenuHNX"></span>
    <span id="spanStatisticMenuUPCOM"></span>
    <span id="spanStatisticMenuFOREIGN"></span>
    <span id="spanStatisticMenuBOND"></span>
    */
    curentPage: 'HOSE',
    setPage: function(input) {
        $.cookie('AG.Stock.Statistic.Page', input);
        var that = AGBB.AppStockStatistics;
        that.curentPage = input;

        document.title = "Kết quả giao dịch " + input;


        AGBB.loadData(that.content, that.path + 'App/' + input + '/' + input + '.htm');
        that.nameClass = "AGBB.AppStockStatistics." + input;
        //        if (that.checkLoad(input)) {
        //            eval('AGBB.AppStockStatistics.' + input + '.init();');
        //        }
        //        else {
        try {

            if (AGBB.browser.safari) {

                var fileName = that.path + 'App/' + input + '/' + input + '.js';
                var node = document.createElement('SCRIPT');
                node.src = fileName;
                var objdivIncludeJS = document.getElementById("divIncludeJS");
                objdivIncludeJS.appendChild(node);
                node.onload = function() {
                    var node2 = document.createElement('SCRIPT');
                    node2.text = 'AGBB.AppStockStatistics.insertUrlLoad("' + input + '");';
                    //document.body.appendChild(node2);
                    objdivIncludeJS.appendChild(node2);
                };

                AGBB.ExecQueue.add(function() {
                    eval('AGBB.AppStockStatistics.' + input + '.init();'); that.insertUrlLoad(input);
                }, function() {
                    return that.checkLoad(input);
                });
            }
            else {
                var fileName = that.path + 'App/' + input + '/' + input + '.js';
                var node = document.createElement('SCRIPT');
                node.src = fileName;
                var objdivIncludeJS = document.getElementById("divIncludeJS");
                objdivIncludeJS.appendChild(node);
                //document.body.appendChild(node);
                /* if (AGBB.browser.msie) {
                AGBB.ExecQueue.add(function() {
                eval('AGBB.AppStockStatistics.' + input + '.init();'); that.insertUrlLoad(input);
                }, function() {
                return node.readyState == 'complete' || node.readyState == 'loaded';
                });
                }
                else {
                */
                var node2 = document.createElement('SCRIPT');
                node2.text = 'AGBB.AppStockStatistics.insertUrlLoad("' + input + '");';
                //document.body.appendChild(node2);
                objdivIncludeJS.appendChild(node2);
                /*
                alert(that.checkLoad(input));
                jQuery.each(jQuery.browser, function(i, val) {
                alert(i + '' + val);
                });
                */

                AGBB.ExecQueue.add(function() {
                    eval('AGBB.AppStockStatistics.' + input + '.init();'); that.insertUrlLoad(input);
                }, function() {
                    return that.checkLoad(input);
                });
            }
            //}
            // AGBB.loadjsIntoBody(that.path + 'App/' + input + '/' + input + '.js', function() { eval('AGBB.AppStockStatistics.' + input + '.init();'); that.insertUrlLoad(input); });
            //AGBB('#divScriptInclude').append('<' + 'script src="' + that.path + 'App/' + input + '/' + input + '.js' + '"><' + '/script>');
            //eval('AGBB.AppStockStatistics.' + input + '.init();'); that.insertUrlLoad(input);
            //AGBB.loadJs("divScriptInclude", that.path + 'App/' + input + '/' + input + '.js', function() { eval('AGBB.AppStockStatistics.' + input + '.init();'); that.insertUrlLoad(input); });
            //}
        }
        catch (err) {
            alert(err);
        }
    },
    loadPage: function() {
        var that = AGBB.AppStockStatistics;
        $('#divIncludeJS').append('<div id="loader"><img src="' + that.path + 'loading.gif" alt="loading..." /></div>');
        that.loader = $('#loader');
        that.loader.css({ position: "absolute", top: "40em", left: "60em" });
        //that.loader = $('<div id="loader"><img src="' + that.path + 'loading.gif" alt="loading..." /></div>').css({ position: "absolute", top: "10em", left: "10em" }).appendTo('body');
        that.loader.show();
    },
    init: function() {
        var that = AGBB.AppStockStatistics;
        that.loadPage();
        var page = $.cookie('AG.Stock.Statistic.Page');
        if (page == 'HOSE' || page == 'HNX' || page == 'UPCOM' || page == 'FOREIGN' || page == 'BOND' || page == 'PUTTHROUGHT')
            that.curentPage = page
        that.setPage(that.curentPage);
        ChangeTab(that.curentPage);
        $('#spanStatisticMenuHOSE').click(function() {
            that.setPage("HOSE");
        });
        $('#spanStatisticMenuHNX').click(function() {
            that.setPage("HNX");
        });
        $('#spanStatisticMenuUPCOM').click(function() {
            that.setPage("UPCOM");
        });
        $('#spanStatisticMenuFOREIGN').click(function() {
            that.setPage("FOREIGN");
        });
        $('#spanStatisticMenuBOND').click(function() {
            that.setPage("BOND");
        });
        $('#spanStatisticMenuPUTTHROUGHT').click(function() {
            that.setPage("PUTTHROUGHT");
        });
    },
    /*Xu ly bang*/
    refresh: function() {
        location.reload();
    },
    refreshPage: function() {
        var that = eval(this.nameClass);
        $('#' + that.contentPage).show();
        that.iCurrentPage = 1;
        that.iSort = 0;
        that.typeSort = 'asc';
        that.loadDataTable("");
        that.loadIndex();
        if (that.pathData.indexOf(this.curentPage) <= 0) {
            AGBB.AppStockStatistics.refresh();
        }
    },
    loadIndex: function() {
        var that = eval(this.nameClass);
        AGBB.AppStockStatistics.loader.show();
        if (that.getPathIndex() != '-1')
            AGBB.loadDataJs(AGBB.AppStockStatistics.path + that.getPathIndex(), that.nameClass + ".processIndex();");
    },
    processIndex: function() {
    },
    loadDataTable: function(url) {
        var that = eval(this.nameClass);
        AGBB.AppStockStatistics.loader.show();
        AGBB.loadDataJs(AGBB.AppStockStatistics.path + that.getPathData() + url, that.nameClass + ".processData();");
    },
    processData: function() {
        try {
            var that = eval(this.nameClass);
            that.iCountColume = that.jsonTableHeader.length;
            that.arrayTableData = that.tableData.split('|');
            // Kiem tra neu khong co du lieu thi de ra thong bao khong co du lieu
            that.iTotalItems = parseInt(that.arrayTableData.length / that.iCountColume);
            that.iNumberPage = parseInt((that.iTotalItems - 1) / that.iCountItemInPage) + 1;
            that.gotoPage(that.iCurrentPage);

        }
        catch (err) {
            alert('Không tìm thấy dữ liệu');
        }
        AGBB.AppStockStatistics.loader.hide();
        // alert(AGBB.AppStockStatistics.loader);
    },
    writePage: function() {
        var that = eval(this.nameClass);
        if (that.iNumberPage > 1) {
            $('#' + that.contentPage).show();
            var that = eval(this.nameClass);
            var strOutHtml = AGBB.AppStockStatistics.GetHtmlPage(that.iNumberPage, that.iCurrentPage, that.nameClass + ".gotoPage");
            $('#' + that.contentPage).html(strOutHtml);
        }
        else
            $('#' + that.contentPage).hide();
    },
    writeData: function(iFrom, iTo) {
        var that = eval(this.nameClass);
        var strOutHtml = '';
        for (var i = iFrom; i < iTo; i++) {
            var iStart = i * that.iCountColume;
            strOutHtml += "<tr";
            if (i % 2) {
                strOutHtml += " class='trSeperate'";
            }
            strOutHtml += ">";
            for (var j = 0; j < that.arrIndex.length; j++) {
                if (that.arrIndex[j] == -1)
                    strOutHtml += "<td style='text-align:center;' class='" + that.arrIndexClass[j] + "' >" + (i + 1) + "</td>";
                else if (j == that.iLink) {
                    strOutHtml += "<td  style='text-align:center;font-weight:700;' class='" + that.arrIndexClass[j] + "' onclick=LinkToPageBySymbol('" + that.arrayTableData[iStart + that.arrIndex[j]] + "'); ><a href='#' class='linkSymbol'>" + that.arrayTableData[iStart + that.arrIndex[j]] + "</span></td>";
                }
                else {
                    strOutHtml += "<td class='" + that.arrIndexClass[j] + "'>" + that.arrayTableData[iStart + that.arrIndex[j]] + "</td>";
                }
            }
            strOutHtml += "</tr>";
        }
        if (strOutHtml == '')
            strOutHtml = 'No Data Found';
        $('#' + that.tdBody).html(strOutHtml);
    },
    gotoPage: function(i) {
        //alert(i);
        var that = eval(this.nameClass);
        that.iCurrentPage = i;
        that.iFrom = (i - 1) * that.iCountItemInPage;
        that.iTo = i * that.iCountItemInPage;
        if (that.iTo > that.iTotalItems)
            that.iTo = that.iTotalItems;
        that.writeData(that.iFrom, that.iTo);
        that.writePage();
    },
    sort: function(id) {
        var that = eval(this.nameClass);
        var arrId = id.split('_');
        var iIndexSort = parseInt(arrId[1]);
        if (that.iSort == parseInt(iIndexSort)) {
            if (that.typeSort == "asc")
                that.typeSort = "desc";
            else
                that.typeSort = "asc";
        }
        else {
            that.typeSort = "asc";
        }
        that.iSort = iIndexSort;
        var nameSort = that.jsonTableHeader[that.arrIndex[iIndexSort]];
        //alert(that.jsonTableHeader[that.arrIndex[iIndexSort]]);
        that.loadDataTable("&nameSort=" + nameSort + "&typeSort=" + that.typeSort);
    },
    /*Ket thuc xu ly bag*/
    /* Xu ly phan trang*/
    // Lay ra phan trang
    getFirstPage: function(iCurentPage, nameFunction) {
        var strOutPage = '';
        strOutPage += '<td style="cursor:pointer;" align="center" onclick="' + nameFunction + '(1);"><img border="0" src="/DesktopModules/AG.StockStatistics/Css/images/first.gif"/></td>';
        if (iCurentPage == 1) {
            strOutPage += '<td style="cursor:pointer;" align="center"><img border="0" src="/DesktopModules/AG.StockStatistics/Css/images/back.gif"/></td>';
        }
        else
            strOutPage += '<td style="cursor:pointer;" align="center" onclick="' + nameFunction + '(' + (iCurentPage - 1) + ');"><img border="0" src="/DesktopModules/AG.StockStatistics/Css/images/back.gif"/></td>';
        return strOutPage;
    },
    getLastPage: function(iNumberPage, iCurentPage, nameFunction) {
        var strOutPage = '';
        if (iCurentPage == iNumberPage) {
            strOutPage += '<td style="cursor:pointer;" align="center" ><img border="0" src="/DesktopModules/AG.StockStatistics/Css/images/next.gif"/></td>';
        }
        else {
            strOutPage += '<td style="cursor:pointer;" align="center" onclick="' + nameFunction + '(' + (iCurentPage + 1) + ');"><img border="0" src="/DesktopModules/AG.StockStatistics/Css/images/next.gif"/></td>';
        }
        strOutPage += '<td style="cursor:pointer;" align="center" onclick="' + nameFunction + '(' + iNumberPage + ');"><img border="0" src="/DesktopModules/AG.StockStatistics/Css/images/last.gif"/></td>';
        return strOutPage;
    },
    getDotPage: function(input) {
        var strOutPage = '';
        strOutPage += '<td align="center"  >' + input + '</td>';
        return strOutPage;
    },
    getNormalPage: function(input, nameFunction) {
        var strOutPage = '';
        strOutPage += '<td  style="cursor:pointer;" align="center" onclick="' + nameFunction + '(' + input + ');">';
        strOutPage += input;
        strOutPage += '</td>';
        return strOutPage;
    },
    getNotActivePage: function(input) {
        var strOutPage = '';
        strOutPage += '<td align="center"><span class="pageCurrent">';
        strOutPage += input;
        strOutPage += '</span></td>';
        return strOutPage;
    },
    GetHtmlPage: function(iNumberPage, iCurentPage, nameFunction) {
        var that = AGBB.AppStockStatistics;
        var strOutPage = '';
        strOutPage += '<div class="divPage"><table border="0" cellspacing="0" cellpadding="3" class="tablePaging">';
        strOutPage += '<tr>';
        if (iNumberPage > 5) {
            strOutPage += that.getFirstPage(iCurentPage, nameFunction);
            var iBegin = 0;
            var iEnd = 5;
            if (iCurentPage > iNumberPage - 2) {
                iBegin = iNumberPage - 5;
                iEnd = iNumberPage;
            }
            else if (iCurentPage > 2) {
                iBegin = iCurentPage - 3;
                iEnd = iCurentPage + 2;
            }
            for (var i = iBegin; i < iEnd; i++) {
                if (iCurentPage == (i + 1)) {
                    strOutPage += that.getNotActivePage('' + iCurentPage + '');
                }
                else {
                    var normalPage = '' + (i + 1) + '';
                    strOutPage += that.getNormalPage(normalPage, nameFunction);
                }
            }
            strOutPage += that.getLastPage(iNumberPage, iCurentPage, nameFunction);
            strOutPage += '</tr>';
            strOutPage += '</table></div>';
            return strOutPage;
        }
        else if (iNumberPage > 1) {
            strOutPage += that.getFirstPage(iCurentPage, nameFunction);
            var iBegin = 0;
            var iEnd = iNumberPage;
            for (var i = iBegin; i < iEnd; i++) {
                if (iCurentPage == (i + 1)) {
                    strOutPage += that.getNotActivePage('' + iCurentPage + '');
                }
                else {
                    var normalPage = '' + (i + 1) + '';
                    strOutPage += that.getNormalPage(normalPage, nameFunction);
                }
            }
            strOutPage += that.getLastPage(iNumberPage, iCurentPage, nameFunction);
            strOutPage += '</tr>';
            strOutPage += '</table></div>';
            return strOutPage;
        }
        else
            return ''
    },
    GetHtmlPageBB: function(iNumberPage, iCurentPage, nameFunction) {
        var that = AGBB.AppStockStatistics;
        if (iNumberPage > 1) {
            var strOutPage = '';
            //strOutPage += '<div class="note">Đơn vị tính: KL niêm yết (CK); KLGD (CK) ; GTGD (Tỷ đồng) ; (*)Giá :Giá bình quân đợt 2 </div>';
            strOutPage += '<div class="divPage"><table border="0" cellspacing="0" cellpadding="3" class="tablePaging">';
            strOutPage += '<tr>';
            if (iNumberPage > 11) {

                /* Thiết lập các trạng thái của paging
                1: Trạng thái bình thường lệch về bên trái
                2: Trạng thái giữa
                3: Trạng thái bên phải 
                */
                var bStatusPaging = 1;
                if (iCurentPage < 7) {

                    bStatusPaging = 1;
                }
                else {
                    if (iCurentPage > iNumberPage - 6) {
                        bStatusPaging = 3;
                    }
                    else {
                        bStatusPaging = 2;
                    }
                }
                if (bStatusPaging == 1) {
                    if (iCurentPage != 1) {
                        strOutPage += that.getFirstPage(iCurentPage, nameFunction);
                    }
                    for (var i = 0; i < (iCurentPage + 2); i++) {
                        if (iCurentPage == (i + 1)) {
                            strOutPage += that.getNotActivePage('' + iCurentPage + '');
                        }
                        else {
                            var normalPage = '' + (i + 1) + '';
                            strOutPage += that.getNormalPage(normalPage, nameFunction);
                        }
                    }
                    //Dấu 3 chấm
                    strOutPage += that.getDotPage("...");
                    // Đoạn cuối
                    for (var i = iNumberPage - 3; i < iNumberPage; i++) {
                        var normalPage = '' + (i + 1) + '';
                        strOutPage += that.getNormalPage(normalPage, nameFunction);
                    }
                    // Kí tự thêm cuối
                    strOutPage += that.getLastPage(iNumberPage, iCurentPage, nameFunction);
                }
                if (bStatusPaging == 2) {
                    strOutPage += that.getFirstPage(iCurentPage, nameFunction);
                    for (var i = 0; i < 3; i++) {
                        var normalPage = '' + (i + 1) + '';
                        strOutPage += that.getNormalPage(normalPage, nameFunction);
                    }
                    //Dấu 3 chấm
                    strOutPage += that.getDotPage("...");
                    for (var i = iCurentPage - 3; i < iCurentPage + 2; i++) {
                        if (iCurentPage == (i + 1)) {
                            strOutPage += that.getNotActivePage('' + iCurentPage + '');
                        }
                        else {
                            var normalPage = '' + (i + 1) + '';
                            strOutPage += that.getNormalPage(normalPage, nameFunction);
                        }
                    }
                    //Dấu 3 chấm
                    strOutPage += that.getDotPage("...");
                    for (var i = iNumberPage - 3; i < iNumberPage; i++) {
                        var normalPage = '' + (i + 1) + '';
                        strOutPage += that.getNormalPage(normalPage, nameFunction);
                    }
                    // Kí tự thêm cuối
                    strOutPage += that.getLastPage(iNumberPage, iCurentPage, nameFunction);
                }
                if (bStatusPaging == 3) {
                    strOutPage += that.getFirstPage(iCurentPage, nameFunction);
                    for (var i = 0; i < 3; i++) {
                        var normalPage = '' + (i + 1) + '';
                        strOutPage += that.getNormalPage(normalPage, nameFunction);
                    }
                    //Dấu 3 chấm
                    strOutPage += that.getDotPage("...");

                    for (var i = iCurentPage - 3; i < iNumberPage; i++) {
                        if (iCurentPage == (i + 1)) {
                            strOutPage += that.getNotActivePage('' + iCurentPage + '');
                        }
                        else {
                            var normalPage = '' + (i + 1) + '';
                            strOutPage += that.getNormalPage(normalPage, nameFunction);
                        }
                    }
                    // Kí tự thêm cuối
                    strOutPage += that.getLastPage(iNumberPage, iCurentPage, nameFunction);
                }
            }
            else {
                for (var i = 0; i < iNumberPage; i++) {
                    if (iCurentPage == (i + 1)) {
                        strOutPage += that.getNotActivePage('' + iCurentPage + '');
                    }
                    else {
                        var normalPage = '' + (i + 1) + '';
                        strOutPage += that.getNormalPage(normalPage, nameFunction);
                    }
                }
            }
            strOutPage += '</tr>';
            strOutPage += '</table></div>';
            return strOutPage;
        }
        else {
            return '';
        }
    },
    writeDataAll: function() {
        var that = eval(this.nameClass);
        $('#' + that.contentPage).hide();
        var strOutHtml = '';
        for (var i = 0; i < that.iTotalItems; i++) {
            var iStart = i * that.iCountColume;
            strOutHtml += "<tr";
            if (i % 2) {
                strOutHtml += " class='trSeperate'";
            }
            strOutHtml += ">";
            for (var j = 0; j < that.arrIndex.length; j++) {
                if (that.arrIndex[j] == -1)
                    strOutHtml += "<td style='text-align:center;' class=' " + that.arrIndexClass[j] + "' >" + (i + 1) + "</td>";
                else if (j == that.iLink) {
                    strOutHtml += "<td  style='text-align:center;font-weight:700;' class=' " + that.arrIndexClass[j] + "' onclick=LinkToPageBySymbol('" + that.arrayTableData[iStart + that.arrIndex[j]] + "'); ><a href='#' class='linkSymbol'>" + that.arrayTableData[iStart + that.arrIndex[j]] + "</span></td>";
                }
                else {
                    strOutHtml += "<td class=' " + that.arrIndexClass[j] + "'>" + that.arrayTableData[iStart + that.arrIndex[j]] + "</td>";
                }
            }
            strOutHtml += "</tr>";
        }
        $('#' + that.tdBody).html(strOutHtml);
    },
    download: function(nameFile) {
        var that = eval(this.nameClass);
        var strOutHtml = '<tHead>' + $('#headStatistic' + that.curentPage).html() + ' </tHead > ';
        for (var i = 0; i < that.iTotalItems; i++) {
            //for (var i = 0; i < 10; i++) {
            var iStart = i * that.iCountColume;
            strOutHtml += "<tr";
            if (i % 2) {
                strOutHtml += " class='trSeperate'";
            }
            strOutHtml += ">";
            for (var j = 0; j < that.arrIndex.length; j++) {
                if (that.arrIndex[j] == -1)
                    strOutHtml += "<td style='text-align:center;' class=' " + that.arrIndexClass[j] + "' >" + (i + 1) + "</td>";
                else if (j == that.iLink) {
                    strOutHtml += "<td  style='text-align:center;font-weight:700;' class=' " + that.arrIndexClass[j] + "'>" + that.arrayTableData[iStart + that.arrIndex[j]] + "</td>";
                }
                else {
                    strOutHtml += "<td class=' " + that.arrIndexClass[j] + "'>" + that.arrayTableData[iStart + that.arrIndex[j]] + "</td>";
                }
            }
            strOutHtml += "</tr>";
        }
        // strOutHtml=$('#' + that.tdBody).html();
        var urlCreateCache = this.path + 'CreateCacheDownload.aspx';
        var urlDownload = this.path + 'DownLoadStatistics.aspx';
        var nameFile = nameFile;
        //alert(AGBB.encode(strOutHtml));
        $.post(urlCreateCache,
                { data: strOutHtml, name: nameFile },
                function(data) {
                    document.location.href = urlDownload + '? &name=' + nameFile;
                }
        );
        //$.post(url, { data: "d", name: nameFile });
    },
    changeColor: function(value) {
        if (value == "0,00")
            return '#F7FF31';
        else if (value.indexOf("-") >= 0) {
            return '#F0323E';
        }
        else {
            return '#0D9945';
        }
    }
    /*Ket thuc xu ly phan trang*/
});
AGBB.AppStockStatistics.init();