﻿//var change=true;
//cometd
//(function($)
//{

var isTrading = (servertime >= 80000 && servertime <= 120000);
function ReloadCometd() {
    servertime += 120;
    if ((servertime % 100) >= 60) { servertime += 40; }
    if ((servertime % 10000) >= 6000) { servertime += 4000; }
    if (servertime >= 240000) { servertime -= 240000 };
    if (servertime >= 80000 && servertime <= 120000) {
        /*if (!isTrading) chart.join();*/
        isTrading = true;
    } else {
        isTrading = false;
    }
}
setInterval("ReloadCometd()", 30000);

//})(jQuery);
function CafeF_StockSymbolSlide(instanceName) {
    this.bm_st_time_exp = 720 * 365
    this.bm_st_state_time_exp = 720; ;
    this.CookiesName = 'favorite_stocks';
    this.StateCookiesName = 'favorite_stocks_state';

    this.AUTO_REFRESH_TIME = 15000;
    this.timerId_Refresh = -1;

    this.IsLogged = 0;

    this.MaxSymbolsInQueue = 15;
    this.MaxSymbolsDisplay = 10;
    this.OldCellDatas = new Array();
    for (var i = 0; i < this.MaxSymbolsDisplay; i++) {
        this.OldCellDatas[i] = '';
    }
    //quan ly ma cty
    this.host = 'http://solieu3.vcmedia.vn';
    //this.host = 'http://localhost:8081';
    this.script_folder = 'http://cafef3.vcmedia.vn/solieu/solieu3/'; //'http://solieu6.vcmedia.vn/www/cafef/';    
    this.script_object = null;
    this.stock_symbols_data = null;
    this.symbol_list = '';
    this.display_list = '';
    this.instance_name = instanceName;
    this.containerId = '';

    this.StockTrading_StartTime = '08:00:00';
    this.StockTrading_EndTime = '11:05:00';
    this.StockTrading_DayOfWeek = '1,2,3,4,5';
    //    this.Fields = {'Price':0,'Change':1,'ChangePercent':2};
    this.Fields = { 'Price': 0, 'Change': 1, 'ChangePercent': 2, 'ceiling': 3, 'floor': 4 };

    this.TabTinMoi = '0';
    this.LastUpdateTinMoi = '';

    this.CreateCssLink = function(href) {
        var css = document.createElement('link');
        css.type = 'text/css';
        css.rel = 'stylesheet';
        css.href = href;
        var head = document.getElementsByTagName('head')[0];
        head.appendChild(css);
    }

    this.IsStockTrading = function() {
        var startTime = new Date();
        var endTime = new Date();
        var now = new Date();
        var day = ',' + this.StockTrading_DayOfWeek + ',';

        var start = this.StockTrading_StartTime.split(':');
        var end = this.StockTrading_EndTime.split(':');

        startTime.setHours(start[0], start[1], start[2]);
        endTime.setHours(end[0], end[1], end[2]);

        return (now >= startTime && now <= endTime && day.indexOf(',' + now.getDay() + ',') >= 0);
    }

    this.InitScript = function(containerId) {

        var checkFastRead = false;
        if (window.location.pathname.indexOf("doc-nhanh.") > 0 || window.location.pathname.indexOf("doc-nhanh/") > 0) { checkFastRead = true; }
        var tab = 0;
        if (checkFastRead) {
            if (document.location.toString().indexOf('/1/') > 0) tab = 1;
            else if (document.location.toString().indexOf('/doc-nhanh.chn') >= 0) tab = 1;
            else if (document.location.toString().indexOf('/2/') > 0) tab = 2;
        }
        this.TabTinMoi = tab;
        var today = new Date();
        this.LastUpdateTinMoi = (today.getFullYear() + '/' + (today.getMonth() + 1) + '/' + ('00' + today.getDate()).substr(('00' + today.getDate()).length - 2, 2) + ' ' + ('00' + today.getHours()).substr(('00' + today.getHours()).length - 2, 2) + ':' + ('00' + today.getMinutes()).substr(('00' + today.getMinutes()).length - 2, 2) + ':' + ('00' + today.getSeconds()).substr(('00' + today.getSeconds()).length - 2, 2));
        /*this.LastUpdateTinMoi = lastTimeHead;*/

        //this.CreateCssLink(this.script_folder + 'css/cafef.css');
        //        this.CreateScriptObject(this.host + '/Public/js/jquery.js');
        //        this.CreateScriptObject('http://cafef.vn/Scripts/Library.js?upd=26881057');
        //        this.CreateScriptObject(this.host + '/Public/js/jqDnR.js');
        //        this.CreateScriptObject('http://cafef.vn/Scripts/AutoComplete/kby.js');
        //        this.CreateScriptObject(this.host + '/Public/js/jquery.bgiframe.min.js');
        //        this.CreateScriptObject(this.host + '/Public/js/jquery.dimensions.js');
        //        this.CreateScriptObject(this.host + '/Public/js/jquery.autocomplete2.js');

        var output = '';

        output += '<div class="danhsachma"> <a href="javascript:void(0);" class="prev" onclick="' + this.instance_name + '.MoveLeft();">Prev</a> <a href="javascript:void(0);" class="next" onclick="' + this.instance_name + '.MoveRight();">Next</a><ul id="stockbar">';
        output += '<li class="wait" id="stockbarli0" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli1" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli2" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli3" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli4" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli5" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli6" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli7" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli8" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '<li class="wait" id="stockbarli9" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');" title="Click vào đây để chọn mã chứng khoán cần theo dõi">Chọn mã CK<br />cần theo dõi</li>';
        output += '</ul><div class="manager"><a href="javascript:void(0);" onclick="' + this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');">Quản lý</a><a href="javascript:void(0);" onclick="' + this.instance_name + '.HideSlide()"><span>close</span></a></div></div></div>';
        output += '<div style="display: none; text-align: right; padding-top: 5px;" class="menu_under_link KenhF_Content" id="CafeF_StockSymbolSlideTable_Hide"><a href="javascript:' + this.instance_name + '.ShowSlide()"></a></div>';
        output += '<div id="CafeF_StockSymbolSlidePopup">';
        output += '<div class="PopupRow">';
        output += '<div id="CafeF_StockSymbolSlidePopupTitle">Gõ mã CK cần thêm vào danh sách</div>';
        output += '<div style="float: right;">';
        output += '<img alt="" style="cursor: hand; cursor: pointer;" onclick="' + this.instance_name + '.ClosePopup(\'CafeF_StockSymbolSlidePopup\')" border="0" src="' + this.script_folder + 'images/close1.gif" />';
        output += '</div>';
        output += '</div>';
        output += '<div class="PopupRow">';
        output += '<div style="float: left"><input type="text" id="CafeF_StockSymbolSlideKeyword" style="width: 225px;" autocomplete="off" class="class_text_autocomplete ac_input" /></div>';
        output += '<div style="float: right;padding-top: 3px;padding-right: 2px;"><a href="javascript:void(0);" onclick="' + this.instance_name + '.AddSymbol();return false;"><img align="middle" src="' + this.script_folder + 'images/add.gif" /></a></div></div>';
        output += '<div class="PopupRow" id="CafeF_StockSymbolSlidePopupList"></div>';
        output += '<div style="float: right; margin-right: 10px;"><a style="color: Red; font-size: 11px; padding: 0px;" href="javascript:void(0)" onclick="' + this.instance_name + '.RemoveAllSymbols();">Xóa toàn bộ</a></div>';
        output += '</div>';

        document.getElementById(containerId).innerHTML = output;
        this.containerId = containerId;
        if (this.GetCookies(this.CookiesName)) {
            if (this.GetCookies(this.CookiesName).indexOf('@') >= 0) // Neu la cookies cua version cu (truoc khi tach So lieu va Tin tuc)
            {
                this.GetSymbolListFromCoolies_OldVersion();
            }
            else // Cookies cua version moi
            {
                this.GetSymbolListFromCoolies();
            }
        }

        var state = this.GetCookies(this.StateCookiesName);
        if (state) {
            state = state.replace('@', '');
            if (state == '1') {
                this.ShowSlide();
            }
            else {
                this.HideSlide();
            }
        }
        else {
            this.ShowSlide();
        }

        if (state && this.display_list != '' && this.IsLogged == 0) {
            this.Log();
            this.IsLogged = 1;
        }

        //this.CreateScriptObject("http://admicro1.vcmedia.vn/cafef/framework.mini.17.10.js", true);
    }

    this.GetSymbolListFromCoolies = function() {
        this.display_list = '';
        this.symbol_list = this.GetCookies(this.CookiesName);
        if (this.symbol_list != '') {
            var listOfSymbol = this.symbol_list.split(';');

            for (var i = 0; i < listOfSymbol.length && i < this.MaxSymbolsDisplay; i++) {
                this.display_list += ';' + listOfSymbol[i];
            }
            if (this.display_list != '') this.display_list = this.display_list.substring(1);
        }
        else {
            this.display_list = '';
        }
    }

    this.GetSymbolListFromCoolies_OldVersion = function() {
        var temp = this.GetCookies(this.CookiesName);
        if (temp != '') {
            var arrSymbols = temp.split('@');

            for (var i = 0; i < arrSymbols.length; i++) {
                if (arrSymbols[i] != '') {
                    var arrData = arrSymbols[i].split('|');
                    this.symbol_list += ';' + arrData[1];
                }
            }
            if (this.symbol_list != '') this.symbol_list = this.symbol_list.substring(1);

            var listOfSymbol = this.symbol_list.split(';');

            for (var i = 0; i < listOfSymbol.length && i < this.MaxSymbolsDisplay; i++) {
                this.display_list += ';' + listOfSymbol[i];
            }
            if (this.display_list != '') this.display_list = this.display_list.substring(1);
        }
        else {
            this.display_list = '';
        }
    }

    this.HideSlide = function() {
        jQuery('#CafeF_StockSymbolSlideTable').hide();
        jQuery('#CafeF_StockSymbolSlideTable_Hide').show();
        this.SetCookie(this.StateCookiesName, 0, this.bm_st_state_time_exp);
    }

    this.ShowSlide = function() {
        jQuery('#CafeF_StockSymbolSlideTable').show();
        jQuery('#CafeF_StockSymbolSlideTable_Hide').hide();
        this.SetCookie(this.StateCookiesName, 1, this.bm_st_state_time_exp);
    }

    this.LoadSymbolData = function(isFirstRequest) {



        //if ((this.IsStockTrading() && CafeF_StockSymbolSlide_IsWindowFocus) || isFirstRequest)
        /*if (this.IsStockTrading() || (!this.IsStockTrading() && isFirstRequest)) {*/
        /* if (this.display_list != '' || isFirstRequest) {
        if (this.symbol_list.length > 0) {*/
        var currentDate = new Date();
        var _location = window.location.toString().toLowerCase();
        this.CreateScriptObject(this.host + '/ProxyHandler.ashx?RequestName=StockSymbolSlide&CallBack=' + this.instance_name + '.OnLoaded&RequestType=json&sym=' + this.display_list + ((_location.indexOf('/du-lieu.chn') > 0 || _location.indexOf('/kenhf.') > 0) ? ";HSXD;HNXD;UPCD;UPCOM" : "") + '&tab=' + this.TabTinMoi + '&time=' + escape(this.LastUpdateTinMoi) + '&ut=' + currentDate.getDate() + currentDate.getTime(), true);


        clearTimeout(this.timerId_Refresh);
        /*if (this.symbol_list.length > 0 && isTrading) {*/
        /*if (isTrading) {*/
        if (isTrading && this.symbol_list.length > 0) {
            this.timerId_Refresh = setTimeout(this.instance_name + '.LoadSymbolData(false)', this.AUTO_REFRESH_TIME);
        } else {
            this.timerId_Refresh = setTimeout(this.instance_name + '.LoadSymbolData(false)', this.AUTO_REFRESH_TIME * 4);
        }
        /*}*/
        
        
        /*    }
        }*/
        /* }
        else {
        //neu ton tai ma cty moi load du lieu realtime
        if (this.symbol_list.length > 0) {
        clearTimeout(this.timerId_Refresh);
        this.timerId_Refresh = setTimeout(this.instance_name + '.LoadSymbolData(false)', this.AUTO_REFRESH_TIME);
        } else {
        clearTimeout(this.timerId_Refresh);
        this.timerId_Refresh = setTimeout(this.instance_name + '.LoadSymbolData(false)', this.AUTO_REFRESH_TIME * 4);
        }
        }*/
    }

    this.Log = function() {
        /* var currentDate = new Date();
        var src = this.host + '/ProxyHandler.ashx?RequestName=StockSymbolSlide&CallBack=' + this.instance_name + '.OnLoaded&RequestType=json&log=1&n=Home&ut=' + currentDate.getDate() + currentDate.getTime();

        var objScript = document.createElement('script');

        objScript.setAttribute('type','text/javascript');
        objScript.setAttribute('src', src);
        
        var head = document.getElementsByTagName('head')[0];
        head.appendChild(objScript);
        */
    }

    this.OnLoaded = function(data, methodName) {
        var json = eval(data);
        if (json && json.ListNews) {
            if (json.ListNews.length > 0) {
                if (json.ListNews[0].News_ID != "0") {
                    this.ProcessDataResponse(json.ListNews);
                    this.LastUpdateTinMoi = json.ListNews[0].News_PublishDateOri;
                    //BindNotification(json.ListNews[0].News_Title, json.ListNews[0].NewsUrl);
                    BindNotification(json.ListNews);                    
                    if (this.TabTinMoi == "1") {
                        this.ProcessDataResponseBelow(json.ListNews, this.LastUpdateTinMoi);
                    }
                    
                }
            }
        }
        if (json && json.ListDoanhNghiep) {
            if (this.TabTinMoi == "2" && json.ListDoanhNghiep.length >= 1) {
                if (json.ListDoanhNghiep[0].News_ID != "0") {
                    this.ProcessDataResponseBelow(json.ListDoanhNghiep, this.LastUpdateTinMoi);
                    //BindNotification(response.ListDoanhNghiep[0].News_Title, response.ListNews[0].NewsUrl);
                }
            }
        }
        if (json && json.Symbols) //thanhbv
        {
            var output = '';
            var displayList = this.display_list.split(';');
            //alert(displayList);
            //for (var i = 0; i < this.MaxSymbolsDisplay; i++) {
            var i = 0; var j = 0; var maxdisp = this.MaxSymbolsDisplay;
            while (i < maxdisp) {
                try {
                    var displayIndex = 1000;
                    var _symTitle = '';
                    if (i < json.Symbols.length) {

                        if (json.Symbols[i].Symbol == 'HSX' || json.Symbols[i].Symbol == 'HNX' || json.Symbols[i].Symbol == 'UPCOM' || json.Symbols[i].Symbol == 'HSXD' || json.Symbols[i].Symbol == 'HNXD' || json.Symbols[i].Symbol == 'UPCD') {
                            i++; maxdisp++;
                            continue;
                        }
                        for (displayIndex = 0; displayIndex < displayList.length; displayIndex++) {
                            if (displayList[displayIndex] == json.Symbols[i].Symbol) break;
                        }
                        //if (displayList[displayIndex] != json.Symbols[i].Symbol) { displayIndex = 1000; }
                        //alert(json.Symbols[i].Symbol + '-' + displayIndex);
                        //this.Fields = {'Price':0,'Change':1,'ChangePercent':2};
                        var image = 'nochange.gif';
                        var style = 'NoChange';
                        var sign = '';
                        if (json.Symbols[i].Datas[this.Fields.Change] > 0) {
                            image = 'up.gif';
                            style = 'Up';
                            sign = '+';
                        }
                        else if (json.Symbols[i].Datas[this.Fields.Change] < 0) {
                            image = 'down.gif';
                            style = 'Down';
                        }
                        //hung
                        if ((json.Symbols[i].Datas[this.Fields.ceiling] > 0) && (json.Symbols[i].Datas[this.Fields.ceiling] == json.Symbols[i].Datas[this.Fields.Price])) {
                            //                        image = 'Ceiling_.gif';
                            style = 'Ceiling';
                            sign = '+';

                        }
                        if ((json.Symbols[i].Datas[this.Fields.floor] > 0) && (json.Symbols[i].Datas[this.Fields.floor] == json.Symbols[i].Datas[this.Fields.Price])) {
                            //                        image = 'Floor_.gif';
                            style = 'Floor';

                        }
                        //end
                        /*
                        <table width="100%" cellspacing="0" cellpadding="0" border="0"><tbody><tr><td><div class="FloatLeft"><a href="/hose/VIC-cong-ty-co-phan-vincom.chn">VIC</a>
                        <div style="" class="Price" id="slide_price_VIC">101.0</div>
                        </div><div class="FloatRight"><img style="margin-top: 1px;" src="http://cafef3.vcmedia.vn/solieu/solieu3/images/close.gif" alt="Xóa mã CK này khỏi danh sách" onclick="danh_sach_ma_chung_khoan_theo_doi.RemoveSymbol('VIC')"></div></td></tr><tr><td> <div style="margin-top: 2px; margin-right: 6px;" class="FloatRight"><img id="slide_image_VIC" src="http://cafef3.vcmedia.vn/solieu/solieu3/images/up.gif" alt=""><span style="" class="Up" id="slide_change_VIC">+2.0</span> <span style="" class="Up" id="slide_percent_VIC">(+2.0%)</span></div></td></tr></tbody></table>
                        */
                        output = '<table width="100%" cellspacing="0" cellpadding="0" border="0"><tr><td>';
                        output += '<div class="FloatLeft"><a href="' + CafeF_JSLibrary.GetCompanyInfoLink(json.Symbols[i].Symbol) + '">' + json.Symbols[i].Symbol + '</a>'
                        output += '<div class="Price" id="slide_price_' + json.Symbols[i].Symbol + '" style="display: inline;">' + this.FormatNumber(json.Symbols[i].Datas[this.Fields.Price], true) + '</div>';
                        output += '</div>';
                        output += '<div class="FloatRight"><img style="margin-top:1px;" src="' + this.script_folder + 'images/close.gif" alt="Xóa mã CK này khỏi danh sách" onclick="' + this.instance_name + '.RemoveSymbol(\'' + json.Symbols[i].Symbol + '\')" /></div>';
                        output += '</td></tr><tr><td>';
                        output += '<div class="FloatRight"><img alt="" src="' + this.script_folder + 'images/' + image + '" id="slide_image_' + json.Symbols[i].Symbol + '" />&nbsp;<span class="' + style + '" id="slide_change_' + json.Symbols[i].Symbol + '">' + sign + this.FormatNumber(json.Symbols[i].Datas[this.Fields.Change], true) + '</span> <span class="' + style + '" id="slide_percent_' + json.Symbols[i].Symbol + '">(' + sign + this.FormatNumber(json.Symbols[i].Datas[this.Fields.ChangePercent], true) + '%)</span></div>';
                        output += '</td></tr></table>';
                        _symTitle = CafeF_JSLibrary.GetCompanyName(json.Symbols[i].Symbol);
                    }
                    else {
                        output = 'Chọn mã CK<br />cần theo dõi';
                        _symTitle = 'Click vào đây để chọn mã chứng khoán cần theo dõi';
                    }

                    this.UpdateCell(displayIndex, output, _symTitle);
                }
                catch (ex) {
                }
                //end
                i++;
            }
            //update center
            for (var i = 0; i < json.Symbols.length; i++) {

                if (json.Symbols[i].Symbol == 'HSX' || json.Symbols[i].Symbol == 'HNX' || json.Symbols[i].Symbol == 'UPCOM') {
                    var _center = "1";
                    if (json.Symbols[i].Symbol == "HNX") _center = "2";
                    else if (json.Symbols[i].Symbol == "UPCOM") _center = "9";
                    try {

                        var datas = json.Symbols[i].Datas;
                        var _bidx = $('.idx_' + _center).html() != datas[0].toString(),
                        _bidc = $('.idc_' + _center).html() != datas[1].toString(),
                        _bidp = $('.idp_' + _center).html() != (datas[2].toString() + '%'),
                        _bidv = $('.idv_' + _center).html() != datas[3].toString();
                        $('.idx_' + _center).html(datas[0].toString()); //index
                        $('.idc_' + _center).html(datas[1].toString()); //change
                        $('.idp_' + _center).html(datas[2].toString() + '%'); //percent
                        $('.idv_' + _center).html(datas[3].toString()); //value
                        $('.idt_' + _center).html(datas[4].toString()); //time
                        $('.idx_' + _center).parents(".bd-vni").removeClass('up').removeClass('down').addClass(datas[1].toString().indexOf('-') >= 0 ? 'down' : 'up');
                        $('.idc_' + _center).parents("#idxd_" + _center).removeClass('Index_Up').removeClass('Index_Down').addClass(datas[1].toString().indexOf('-') >= 0 ? 'Index_Down' : 'Index_Up');
                        $('.img_' + _center).attr('src', 'http://cafef3.vcmedia.vn/images/' + (datas[1].toString().indexOf('-') >= 0 ? "btdown" : "btup") + '.gif');
                        var _class = datas[1].toString().indexOf('-') >= 0 ? 'down' : (datas[1].toString().indexOf('0') == 0 ? 'normal' : 'up');
                        $('.con_' + _center).attr('class', 'con_' + _center + ' ' + _class);
                        if (_bidx) { $('.idx_' + _center).css('background-color', '#FF6A00'); }
                        if (_bidc) { $('.idc_' + _center).css('background-color', '#FF6A00'); }
                        if (_bidp) { $('.idp_' + _center).css('background-color', '#FF6A00'); }
                        if (_bidv) { $('.idv_' + _center).css('background-color', '#FF6A00'); }
                        window.setTimeout("$('.idx_" + _center + ",.idc_" + _center + ",.idp_" + _center + ",.idv_" + _center + "').css('background-color', '');", 1000);
                    } catch (ex) { alert(_center); alert(ex); };
                }
                else if (json.Symbols[i].Symbol == 'HSXD' || json.Symbols[i].Symbol == 'HNXD' || json.Symbols[i].Symbol == 'UPCD') {
                    var _center = "1";
                    if (json.Symbols[i].Symbol == "HNXD") _center = "2";
                    else if (json.Symbols[i].Symbol == "UPCD") _center = "9";
                    var datas = json.Symbols[i].Datas;
                    var _stats = datas[2].toString().split('|');
                    var _bivl = $('.ivl_' + _center).html() != datas[0].toString(),
                        _bidf = $('.idf_' + _center).html() != datas[1].toString(),
                        _bceiling = $('.ceiling_' + _center).html() != _stats[0].toString(),
                        _bup = $('.up_' + _center).html() != _stats[1].toString(),
                        _bnormal = $('.normal_' + _center).html() != _stats[2].toString(),
                        _bdown = $('.down_' + _center).html() != _stats[3].toString(),
                        _bfloor = $('.floor_' + _center).html() != _stats[4].toString();
                    $('.ivl_' + _center).html(datas[0].toString()); //volume
                    $('.idf_' + _center).html(datas[1].toString()); //foreign
                    $('.ceiling_' + _center).html(_stats[0].toString()); //ceiling
                    $('.up_' + _center).html(_stats[1].toString()); //up
                    $('.normal_' + _center).html(_stats[2].toString()); //normal
                    $('.down_' + _center).html(_stats[3].toString()); //down
                    $('.floor_' + _center).html(_stats[4].toString()); //floor
                    $('.ifb_' + _center).html(datas[3].toString()); //foreign buy volume
                    $('.ifs_' + _center).html(datas[4].toString()); //foreign sell volume

                    if (_bivl) { $('.ivl_' + _center).css('background-color', '#FF6A00'); }
                    if (_bidf) { $('.idf_' + _center).css('background-color', '#FF6A00'); }
                    if (_bceiling) { $('.ceiling_' + _center).css('background-color', '#FF6A00'); }
                    if (_bup) { $('.up_' + _center).css('background-color', '#FF6A00'); }
                    if (_bnormal) { $('.normal_' + _center).css('background-color', '#FF6A00'); }
                    if (_bdown) { $('.down_' + _center).css('background-color', '#FF6A00'); }
                    if (_bfloor) { $('.floor_' + _center).css('background-color', '#FF6A00'); }
                    window.setTimeout("$('.idf_" + _center + ",.ivl_" + _center + ",.ceiling_" + _center + ",.up_" + _center + ",.normal_" + _center + ",.down_" + _center + ",.floor_" + _center + "').css('background-color', '');", 1000);
                } else {
                    continue;
                }
            }


            //hieubt - 21/12/2010
            //use cometd
            //if(isTrading) chart.join();
            //return;


        }
        
    }

    this.OpenPopup = function(id) {
        jQuery('#CafeF_StockSymbolSlidePopup').jqDrag('#CafeF_StockSymbolSlidePopupTitle');

        jQuery('#CafeF_StockSymbolSlideKeyword').autocomplete(oc, {
            minChars: 1,
            delay: 10,
            width: 300,
            matchContains: true,
            autoFill: false, max: 15,
            formatItem: function(row) {
                return row.c + " - " + row.m + "@" + row.o;
                //return row.m + "@" + row.o;
            },
            formatResult: function(row) {
                return row.c + " - " + row.m;
                //return row.m;
            },
            isAddSymbolToFavorite: true,
            CafeF_StockSymbolSlideObject: this
        });

        this.RefreshListOfSymbolInConfigWindow();

        jQuery('#' + id).show();
        var txt = document.getElementById('CafeF_StockSymbolSlideKeyword');
        txt.value = '';
        txt.focus();
    }

    this.ClosePopup = function(id) {
        var txt = document.getElementById('CafeF_StockSymbolSlideKeyword');
        txt.value = '';
        jQuery('#' + id).hide();
    }

    this.MoveLeft = function() {
        if (this.symbol_list.indexOf(this.display_list) == 0 || this.displayList == '') return;

        var listOfSymbol = this.symbol_list.split(';');
        var displayList = this.display_list.split(';');

        var startIndex = 0;

        for (startIndex = 0; startIndex < listOfSymbol.length; startIndex++) {
            if (listOfSymbol[startIndex] == displayList[0]) break;
        }

        this.display_list = '';
        for (var i = startIndex - 1, j = 0; i < listOfSymbol.length && j < this.MaxSymbolsDisplay; i++) {
            this.display_list += ';' + listOfSymbol[i];
            j++;
        }
        if (this.display_list != '') this.display_list = this.display_list.substring(1);
        //alert(this.display_list);
        this.LoadSymbolData(true);
    }

    this.MoveRight = function() {
        if (this.symbol_list.indexOf(this.display_list) + this.display_list.length == this.symbol_list.length || this.displayList == '') return;

        var listOfSymbol = this.symbol_list.split(';');
        var displayList = this.display_list.split(';');

        var startIndex = 0;

        for (startIndex = 0; startIndex < listOfSymbol.length; startIndex++) {
            if (listOfSymbol[startIndex] == displayList[0]) break;
        }

        this.display_list = '';
        for (var i = startIndex + 1, j = 0; i < listOfSymbol.length && j < this.MaxSymbolsDisplay; i++) {
            this.display_list += ';' + listOfSymbol[i];
            j++;
        }
        if (this.display_list != '') this.display_list = this.display_list.substring(1);
        //alert(this.display_list);
        this.LoadSymbolData(true);
    }

    this.AddSymbol = function() {
        //
    }

    this.AddSymbolToFavorite = function(symbol) {
        var listOfSymbol;

        var txt = document.getElementById('CafeF_StockSymbolSlideKeyword');

        if (this.symbol_list != '') {
            listOfSymbol = this.symbol_list.split(';');

            for (var i = 0; i < listOfSymbol.length; i++) {
                if (listOfSymbol[i] == symbol) {
                    txt.value = '';
                    return;
                }
            }

            if (listOfSymbol.length >= this.MaxSymbolsInQueue) {
                alert('Đã đủ 10 mã CK trong danh sách theo dõi');
                txt.value = '';
                return;
            }

            this.symbol_list += ';' + symbol;
        }
        else {
            this.symbol_list = symbol;
        }

        listOfSymbol = this.symbol_list.split(';');
        if (listOfSymbol.length <= this.MaxSymbolsDisplay) {
            this.display_list = this.symbol_list;
        }
        else {
            this.display_list = '';
            for (var i = listOfSymbol.length - this.MaxSymbolsDisplay; i < listOfSymbol.length; i++) {
                this.display_list += ';' + listOfSymbol[i];
            }
            if (this.display_list != '') this.display_list = this.display_list.substring(1);
        }

        this.SetCookie(this.CookiesName, this.symbol_list, this.bm_st_time_exp);

        this.LoadSymbolData(true);

        this.RefreshListOfSymbolInConfigWindow();
        txt.value = '';

        if (this.IsLogged == 0) {
            //this.Log();
            this.IsLogged = 1;
        }
    }

    this.RemoveAllSymbols = function() {
        this.display_list = '';
        this.symbol_list = '';

        this.SetCookie(this.CookiesName, this.symbol_list, this.bm_st_time_exp);
        this.InitScript(this.containerId);
        //this.LoadSymbolData(true);

        this.RefreshListOfSymbolInConfigWindow();
        var txt = document.getElementById('CafeF_StockSymbolSlideKeyword');
        txt.value = '';
        txt.focus();
    }

    this.RemoveSymbol = function(symbol) {
        var temp = ';' + this.display_list + ';';
        var listOfSymbol = this.symbol_list.split(';');
        this.symbol_list = '';
        var endDisplayIndex = -1;

        this.display_list = ';' + this.display_list + ';';
        this.display_list = this.display_list.replace(';' + symbol + ';', ';');
        this.display_list = this.display_list.substring(1, this.display_list.length - 1);

        var lastSymbol = (this.display_list == '' ? '' : this.display_list.substring(this.display_list.lastIndexOf(';') + 1));

        for (var i = 0, j = -1; i < listOfSymbol.length; i++) {
            if (listOfSymbol[i] != symbol) {
                j++;
                if (lastSymbol != '') {
                    if (endDisplayIndex == -1 && listOfSymbol[i] == lastSymbol) {
                        endDisplayIndex = j;
                    }
                }
                this.symbol_list += ';' + listOfSymbol[i];
            }
        }
        if (this.symbol_list != '') this.symbol_list = this.symbol_list.substring(1);
        listOfSymbol = this.symbol_list.split(';');

        if (endDisplayIndex < this.MaxSymbolsDisplay && listOfSymbol > this.MaxSymbolsDisplay) endDisplayIndex++;

        // Item bi xoa nam trong danh sach dang hien thi
        if (temp.indexOf(';' + symbol + ';') >= 0) {
            if (this.symbol_list.indexOf(this.display_list) == 0 && listOfSymbol.length > this.MaxSymbolsDisplay) endDisplayIndex++;

            this.display_list = '';
            for (var i = 0; i < this.MaxSymbolsDisplay && endDisplayIndex >= 0; i++) {
                this.display_list = ';' + listOfSymbol[endDisplayIndex] + this.display_list;
                endDisplayIndex--;
            }
        }
        if (this.display_list != '') this.display_list = this.display_list.substring(1);

        this.SetCookie(this.CookiesName, this.symbol_list, this.bm_st_time_exp);
        this.InitScript(this.containerId);
        this.LoadSymbolData(true);
        this.RefreshListOfSymbolInConfigWindow();
        var txt = document.getElementById('CafeF_StockSymbolSlideKeyword');
        txt.value = '';
        try { txt.focus(); } catch (e) { }
    }

    this.RefreshListOfSymbolInConfigWindow = function() {
        var strList = '';

        if (this.symbol_list != '') {
            strList = '<table align="center" width="90%" border="0" cellpadding="3" cellspacing="0">';

            var listOfSymbol = this.symbol_list.split(';');

            for (var i = 0; i < listOfSymbol.length; i++) {
                strList += '<tr>';
                strList += '<td style="border:none;"><span style="color: #aaaaaa">' + (i + 1) + '.</span> <strong>' + listOfSymbol[i] + '</strong></td>';
                strList += '<td style="border:none;"></td>';
                strList += '<td style="border:none;" align="right"><img alt="Xóa mã CK khỏi danh sách" onclick="' + this.instance_name + '.RemoveSymbol(\'' + listOfSymbol[i] + '\')" src="' + this.script_folder + 'images/delete.gif" /></td>';
                strList += '</tr>';
            }

            strList += "</table>";
        }
        jQuery('#CafeF_StockSymbolSlidePopupList').html(strList);
    }

    this.FormatNumber = function(value, displayZero) {
        if (value == '') return (displayZero ? '0' : '');
        try {
            var number = parseFloat(value);
            value = CafeF_JSLibrary.FormatNumber(number, 2, '.', ',');
            return (value);
        }
        catch (err) {
            return (displayZero ? '0' : '');
        }
    }

    this.UpdateCell = function(index, value, _title) {
        //if (this.OldCellDatas[index] != value) {
        //var cell = document.getElementById('CafeF_StockSymbolSlideTable_Cell' + index);
        //        var cell = document.getElementById('stockbarli' + index);
        //        if (cell) {
        //            cell.innerHTML = value;
        //        }
        if (value.toString().indexOf("table") > 0)
            $('#stockbarli' + index).attr('onclick', '');
        else
            $('#stockbarli' + index).attr('onclick', this.instance_name + '.OpenPopup(\'CafeF_StockSymbolSlidePopup\');');
        $('#stockbarli' + index).attr('title', _title);
        $('#stockbarli' + index).html(value);
        this.OldCellDatas[index] = value;
        //}
    }

    this.CreateScriptObject = function(src, useScriptObject) {
        if (useScriptObject && this.script_object) {
            this.RemoveScriptObject();
        }

        this.script_object = document.createElement('script');

        this.script_object.setAttribute('type', 'text/javascript');
        this.script_object.setAttribute('src', src);

        var head = document.getElementsByTagName('head')[0];
        head.appendChild(this.script_object);
    }

    this.AppendScriptObject = function(script) {
        var obj = document.createElement('script');

        obj.setAttribute('type', 'text/javascript');

        obj.appendChild(document.createTextNode(script));

        var head = document.getElementsByTagName('head')[0];
        head.appendChild(obj);
    }

    this.RemoveScriptObject = function() {
        this.script_object.parentNode.removeChild(this.script_object);
        this.script_object = null;
    }

    this.SetCookie = function(c_name, value, time_expire) {
        var exdate = new Date();

        exdate.setDate(exdate.getDate() + time_expire);

        document.cookie = c_name + '=' + escape(value) + ((time_expire == null) ? '' : ';expires=' + exdate.toGMTString()) + ';path=/';
    }
    this.GetCookies = function(c_name) {
        if (document.cookie.length > 0) {
            var c_start = document.cookie.indexOf(c_name + "=");
            if (c_start != -1) {
                c_start = c_start + c_name.length + 1;
                var c_end = document.cookie.indexOf(";", c_start);
                if (c_end == -1) c_end = document.cookie.length;
                return unescape(document.cookie.substring(c_start, c_end));
            }
        }
        return '';
    }

    this.ProcessDataResponseBelow = function(response, lastDate) {
        var today = new Date();
        var last = new Date(Date.parse(lastDate.replace(/-/g, '/')));
        var diff = Math.ceil((today.getTime() - last.getTime()) / (60 * 1000));

        /*process old rows*/
        $("#mktwheadlines div ol li div.timeTitle").each(function() {
            var v = $(this).html(); //
            if (v.indexOf(' phút trước') > 0) {
                v = v.replace(' phút trước', '');
                var m = parseInt(v);
                m = m + diff;
                if (m > 60) {
                    $(this).html((today.getHours() - 1).toString() + ':' + (today.getMinutes().toString()));
                } else {
                    $(this).html(m + ' phút trước');
                }
            }
        });

        /*process new rows*/
        var numberNewsResult = response.length;
        for (var row = numberNewsResult; row > 0; row--) {
            var orgiID = $("#mktwheadlines div ol li").eq(0).attr("id");
            var rand_no = lastIndex + 20;
            $("#mktwheadlines div ol").append('<li id="liFastReadNumber_' + rand_no + '" class="expandable"><div class="nv-text-cont"><div class="timeTitle">' + response[row - 1].timetext + '</div><div id="divTitle' + rand_no + '" lang="' + rand_no + '" style="float: left; width: 305px;" onmousemove="ChangePos(this.lang);"><div style="float: left; padding-right: 5px; padding-top: 4px; height: 20px"><img alt="" src="http://cafef3.vcmedia.vn/images/red_bull.gif" /></div><div id="forBold_' + rand_no + '" style="float: left; text-align: left; width: 295px"><a target="_blank" class="docnhanhTitle" href="' + response[row - 1].NewsUrl + '">' + response[row - 1].News_Title + '</a></div></div></div><div style="clear: both;"> </div><div class="nv-details"><div><span>' + response[row - 1].News_PublishDate + '</span></div><p class="abs">' + response[row - 1].News_InitContent + '<br /><br />' + response[row - 1].ContentNoImage + response[row - 1].NaviUrl + response[row - 1].Chart + '</p></div></li>');
            $("#liFastReadNumber_" + rand_no + "").insertBefore("#" + orgiID + "");
            lastIndex++;
        }


        /* Begin Re Assign Parameters */
        //lastResultTimeRequest = response[0].News_PublishDateOri + '';
        $("#hiddenIsSave").val("false");
        var mkt_page_params = function(criteria) { };
        mktwNewsViewer = new NewsViewer(mkt_page_params);
        /* End Re Assign Parameters */
    }
    this.ProcessDataResponse = function(response) {
        var pageSize = 5;
        var oldIndex = 4;
        var numberNewsResult = 0; // = response.length;

        for (var r = 0; r < response.length; r++) {
            if (response[r].Cat_ID == "50") {
                continue;
            }
            numberNewsResult++;
        }

        /* Begin Remove old Data */
        var limitRow = 0;
        if (numberNewsResult <= pageSize) {
            limitRow = numberNewsResult;
        }
        else {
            limitRow = pageSize;
        }
        for (var i = 0; i < limitRow; i++) {
            $("#divTinMoi ul li").eq(oldIndex).remove();
            oldIndex--;
        }
        /* End Remove old Data */
        /* Begin Rebind new Data */
        limitRow = 0;
        var liIdFirst;
        //if (numberNewsResult < pageSize) {
            liIdFirst = $("#divTinMoi ul li").eq(0).attr("id");
            for (var j = numberNewsResult; j > 0; j--) {
                if (limitRow < pageSize) {
                    if (response[j - 1].Cat_ID == "50") {
                        continue;
                    }
                    var img = '';
                    if (response[j - 1].NewsUrl.indexOf('http://biz.cafef.vn') >= 0) {
                        img = '&nbsp;&nbsp;<img src="http://cafef3.vcmedia.vn/v2/images/icon_biz.png" alt="" border="0" align="top" />';
                    }
                    var landimg = '';
                    if (response[j - 1].NewsUrl.indexOf('http://land.cafef.vn') >= 0) {
                        landimg = '&nbsp;&nbsp;<img src="http://cafef3.vcmedia.vn/v2/images/icon_land.png" alt="" border="0" align="top" />';
                    }

                    $("#divTinMoi ul").append('<li id="liNumber_' + response[j - 1].News_ID + '" title="' + response[j - 1].News_PublishDateOri + '"><div class="time"> ' + response[j - 1].PublishDate + ' </div><div class="title"><a href="' + response[j - 1].NewsUrl + '" title="' + response[j - 1].News_Title_Encode + '">' + response[j - 1].News_Title + img + landimg + '</a></div></li>');
                    $("#liNumber_" + response[j - 1].News_ID + "").insertBefore("#" + liIdFirst + "");
                    liIdFirst = "liNumber_" + response[j - 1].News_ID;
                    limitRow++;
                }
            }
//        }
//        else {
//            for (var j = numberNewsResult; j > 0; j--) {
//                if (limitRow < pageSize) {
//                    if (response[j - 1].Cat_ID == "50") {
//                        continue;
//                    }
//                    $("#divTinMoi ul").append('<li id="liNumber_' + response[j - 1].News_ID + '" title="' + response[j - 1].News_PublishDateOri + '"><div class="time"> ' + response[j - 1].PublishDate + ' </div><div class="title"><a href="' + response[j - 1].NewsUrl + '" title="' + response[j - 1].News_Title_Encode + '">' + response[j - 1].News_Title + '</a></div></li>');
//                    if (j < numberNewsResult) {
//                        $("#liNumber_" + response[j - 1].News_ID + "").insertBefore("#" + liIdFirst + "");
//                    }
//                    liIdFirst = "liNumber_" + response[j - 1].News_ID;
//                    limitRow++;
//                }
//            }
//        }
        /* End Rebind new Data */
    }
}
