﻿// JScript File
function GetPrice()
{
    xPrice = CreateXMLHttpRequest();
    window.clearTimeout(intPrice);
    var url = "Process.aspx?Type=MS"
    GetData(xPrice, url, ShowPrice);
}

var bIsFilterListCreated = false;
function ShowPrice()
{
    if (xPrice.readyState == 4)
    {
        if(xPrice.status == 200)
        {
            if (xPrice.responseText.length <= 0) {intPrice = setTimeout('GetPrice()',Time2Refresh); return;}
            var data = xPrice.responseText.split('^');

            var marketinfo = data[0].split('|');
            ShowInfo(marketinfo[0]);
            
            var price = data[1].split('|');
            if (! bIsFilterListCreated)
            {
                bIsFilterListCreated = true;
                ShowFilterList(price);
            }
            ShowData(price);
            
            counter += 1;
            window.status = "Loaded " + counter + " times.";
            intPrice = setTimeout('GetPrice()',Time2Refresh);
        }
        else
        {
            counter += 1;
            window.status = "Loaded" + counter;
            intPrice = setTimeout('GetPrice()',Time2Refresh);
        }
    }
}

function ShowInfo(data)
{
    if (data.length > 0)
    {
        var f = data.split(':');
        if (f.length >= 7)
        {
            var flF4_IChange = parseFloat(f[4]);
            var flF5_IChangePCT = parseFloat(f[5]);
            var Arrow = "";
            var SignalClass = "";
            if (flF4_IChange > 0)
            {
                Arrow = "▲";
                SignalClass = "Inc2";
                f[4] = "+" + f[4];
                f[5] = "+" + f[5];
            }
            else if (flF4_IChange < 0)
            {
                Arrow = "▼";
                SignalClass = "Dec2";
            }
            else
            {
                Arrow = "&nbsp;";
                SignalClass = "Ref";
            }

            //var obj = null;
            document.getElementById("divIndex").innerHTML = "<font class='" + SignalClass + "'>" + f[3] + "</font>";            
            document.getElementById("divIndexChg").innerHTML = "<font class='" + SignalClass + "'>" + f[4] + "</font>";            
            document.getElementById("divIndexChgPct").innerHTML = "<font class='" + SignalClass + "'>" + Arrow + f[5] + "</font>";
            
            document.getElementById("divTotalVol").innerHTML = f[6];
            document.getElementById("divTotalVal").innerHTML = f[7];
        }
    }
}

function SwitchLanguage()
{
    if (document.getElementById("lnkLanguage").innerHTML == engTxt.Txt_LnkLanguege)
    {
        langTxt = engTxt;
    }
    else
    {
        langTxt = vieTxt;
    }
    UpdateLanguageText();
}

/////////////

function TableHeader()
{
    var s = new StringBuilder();
    s.append("<table id='tableHeader' border='0' cellpadding='0' cellspacing='0' class='datalistheader' style='width:100%;'>");
    s.append("<tr align='center'>");
    s.append("<td rowspan='2' class='HCol01' style='width:2%;'>" + langTxt.Txt_TblCol_No + "</td>");
    s.append("<td rowspan='2' class='HCol02' style='width:4%;'>" + langTxt.Txt_TblCol_StockSymbol + "</td>");
    s.append("<td rowspan='2' class='HCol03' style='width:3%;'>" + langTxt.Txt_TblCol_Ref + "</td>");
    s.append("<td rowspan='2' class='HCol04' style='width:3%;'>" + langTxt.Txt_TblCol_Ceil + "</td>");
    s.append("<td rowspan='2' class='HCol05' style='width:3%;'>" + langTxt.Txt_TblCol_Floor + "</td>");
    s.append("<td rowspan='2' class='HCol06' style='width:4%;'>" + langTxt.Txt_TblCol_TotalMatch + "</td>");
    s.append("<td rowspan='2' class='HCol08' style='width:3%;'>" + langTxt.Txt_TblCol_Lowest + "</td>");
    s.append("<td rowspan='2' class='HCol09' style='width:3%;'>" + langTxt.Txt_TblCol_Highest + "</td>");
    s.append("<td colspan='6' class='HCol07'>" + langTxt.Txt_TblCol_Bid + "</td>");
    s.append("<td colspan='3' class='HCol10'>" + langTxt.Txt_TblCol_Trade + "</td>");
    s.append("<td colspan='6' class='HCol11'>" + langTxt.Txt_TblCol_Offer + "</td>");
    s.append("</tr>");
    s.append("<tr align='center'>");
    s.append("<td class='HCol07S1' style='width:3%;'>" + langTxt.Txt_TblCol_Price3 + "</td>");
    s.append("<td class='HCol07S1' style='width:3%;'>" + langTxt.Txt_TblCol_Vol3 + "</td>");
    s.append("<td class='HCol07S1' style='width:3%;'>" + langTxt.Txt_TblCol_Price2 + "</td>");
    s.append("<td class='HCol07S1' style='width:3%;'>" + langTxt.Txt_TblCol_Vol2 + "</td>");     
    s.append("<td class='HCol07S1' style='width:3%;'>" + langTxt.Txt_TblCol_Price1 + "</td>");
    s.append("<td class='HCol07S1' style='width:3%;'>" + langTxt.Txt_TblCol_Vol1 + "</td>");     

    s.append("<td class='HCol10S1' style='width:3%;'>" + langTxt.Txt_TblCol_Price + "</td>");
    s.append("<td class='HCol10S1' style='width:3%;'>" + langTxt.Txt_TblCol_Change + "</td>");
    s.append("<td class='HCol10S1' style='width:3%;'>" + langTxt.Txt_TblCol_Vol + "</td>");

    s.append("<td class='HCol11S1' style='width:3%;'>" + langTxt.Txt_TblCol_Price1 + "</td>");
    s.append("<td class='HCol11S1' style='width:3%;'>" + langTxt.Txt_TblCol_Vol1 + "</td>");
    s.append("<td class='HCol11S1' style='width:3%;'>" + langTxt.Txt_TblCol_Price2 + "</td>");
    s.append("<td class='HCol11S1' style='width:3%;'>" + langTxt.Txt_TblCol_Vol2 + "</td>");     
    s.append("<td class='HCol11S1' style='width:3%;'>" + langTxt.Txt_TblCol_Price3 + "</td>");
    s.append("<td class='HCol11S1' style='width:3%;'>" + langTxt.Txt_TblCol_Vol3 + "</td>");               
    s.append("</tr>");
    
    return s.toString();
}

function ShowData(newdata)
{  
    if (!price)  
    {            
        price = newdata;         
    }    
  
    var view = new StringBuilder();
    var alternate = ""; // odd, even row for alternative color
    var iNo = 1;
    
    view.append(TableHeader());

    for(var i = 0; i < newdata.length; i++)
    {
        if (newdata[i] != "")
        {       
            var stock = newdata[i].split(":");
            if (isChecked("chkStkSbl_" + stock[0]))
            {
                var old = price[i].split(":");           
                var flStk14 = parseFloat(stock[14]);
                var flStk1_Ref  = parseFloat(stock[1]);
                var flStk2_Ceil = parseFloat(stock[2]);
                var flStk3_Fl   = parseFloat(stock[3]);

                //số thứ tự
                view.append("<TR onmousedown='javascript:rowClicked(this)'><TD width='2%' class='DCol01" + alternate + "'><font class='DVal01'>" + (iNo) + "</font></TD>");
                iNo++;
                //Mã chứng khoán
                view.append("<TD class='DCol02" + alternate + "' width='4%' style='border-right-width: 0px'><font class='DVal02'>" + stock[0] + "</font>");
                //Hiển thị mũi tên tướng ứng với giá lên hay xuống                
                if(stock[13] != "")
                {
                    if(flStk14 != 0)
                    {
                        view.append("<font class='" + (flStk14 > 0 ? "Inc2'>▲</font>" : "Dec2'>▼</font>"));
                    }
                    else
                    {
                        view.append("<font class='RefPrice'></font>");
                    }
                }
                else
                {
                    view.append("<font></font>");
                }
                view.append("</TD>");
                
                //Giá tham chiếu, giá trần, giá sàn
                view.append("<TD class='DCol03" + alternate + "' width='3%'><font class='RefPrice'>" + stock[1] + "</font></TD>"); //GTC
                view.append("<TD class='DCol04" + alternate + "' width='3%'><font class='Ceiling'>" + stock[2] + "</font></TD>"); //T
                view.append("<TD class='DCol05" + alternate + "' width='3%'><font class='Floor'>" + stock[3] + "</font></TD>"); //S

                //Tổng
                view.append("<TD class='DCol06" + alternate + "' width='4%'><font class='DVal06'>" + stock[6] + "</font></TD>");
                //Thấp nhất
                view.append("<TD class='DCol08S1" + alternate + "' width='3%'><font class='DVal08S1'>" + stock[4] + "</font></TD>");
                //Cao nhất
                 view.append("<TD class='DCol09S1" + alternate + "' width='3%'><font class='DVal09S1'>" + stock[5] + "</font></TD>");
                                  
                //Mua 
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[7], stock[7], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[7], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[8], stock[8], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[7], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[9], stock[9], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[9], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[10], stock[10], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[9], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[11], stock[11], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[11], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[12], stock[12], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[11], "Ceiling2"));
                
                //gia thay doi
                if(stock[13] != "" && stock[13] != "0.0" &&  flStk14 != 0)
                {
                        var fontOpenTag = "<font>";
                        if (flStk14 > 0)
                        {
                            if (stock[13] == stock[2])
                            {
                                fontOpenTag = "<font class='Ceiling3'>";
                            }
                            else
                            {
                                fontOpenTag = "<font class='Inc2'>";
                            }
                        }
                        else
                        {
                            if (stock[13] == stock[3])
                            {
                                fontOpenTag = "<font class='Floor3'>";
                            }
                            else
                            {            
                                fontOpenTag = "<font class='Dec2'>";
                            }
                        }
                
                    view.append("<TD class='DCol10S1" + alternate + "' width='3%'>" + fontOpenTag + stock[13] + "</font></TD>");
                    view.append("<TD nowrap class='DCol10S1" + alternate + "' width='3%'>");
                    view.append(fontOpenTag);
                    view.append((flStk14 > 0 ? "▲+":"▼"));
                    view.append(flStk14 != 0 ? stock[14] : 0);
                    view.append("</font></TD>");
                    view.append("<TD class='DCol10S1" + alternate + "' width='3%'>" + fontOpenTag + stock[15] + "</font></TD>");
                }
                else
                {
                    view.append("<TD class='DCol10S1" + alternate + "' width='3%'>" + "<font class='RefPrice3'>" + stock[13] + "</font></TD>");
                    view.append("<TD nowrap class='DCol10S1" + alternate + "' width='3%'>");
                    view.append("<font class='RefPrice3'>");
                    view.append(" ");
                    view.append("</font></TD>");
                    view.append("<TD class='DCol10S1" + alternate + "' width='3%'>" + "<font class='RefPrice3'>" + stock[15] + "</font></TD>");
                }
               
               
                //Bán
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[16], stock[16], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[16], "Floor2"));
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[17], stock[17], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[16], "Floor2"));                    
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[18], stock[18], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[18], "Floor2"));
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[19], stock[19], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[18], "Floor2"));
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[20], stock[20], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[20], "Floor2"));
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[21], stock[21], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[20], "Floor2"));                  
                view.append("</TR>");
                
                if (alternate == "")
                {
                    alternate = "A";
                }
                else 
                {
                    alternate = "";
                }
            }
        }
    }
    view.append("</table>");

    //Cập nhật price: lưu lại trang trước giá cũ
    for(var k=0;k<newdata.length;k++)
    {
        price[k] = newdata[k];
    } 

    //Tạo bảng giá
    document.getElementById("divPrice").innerHTML = view.toString();
}

function createTdsBidOffer(opt, colStyle, old, stock, ref, ceil, floor, price, styleATOATC)
{
    var view = new StringBuilder();
    if (old != stock)                
    {
        view.append("<TD class='ColChanged' " + opt + ">" + stock + "</TD>");                
    }
    else
    {
        view.append("<TD class='" + colStyle + "' " + opt + ">");
        if ((price == "ATO") || (price == "ATC"))
        {
            view.append("<font class='" + styleATOATC + "'>" + stock + "</font></TD>");
        }
        else
        {
            var flPrice = parseFloat(price);
            if (flPrice > ref)
            {
                if (flPrice == ceil)
                {
                    view.append("<font class='Ceiling2'>" + stock + "</font></TD>");
                }
                else
                {
                    view.append("<font class='Inc'>" + stock + "</font></TD>");
                }
            }
            else if (flPrice < ref)
            {
                if (flPrice == floor)
                {
                    view.append("<font class='Floor2'>" + stock + "</font></TD>");
                }
                else
                {            
                    view.append("<font class='Dec'>" + stock + "</font></TD>");
                }
            }
            else 
            {
                view.append("<font class='RefPrice2'>" + stock + "</font></TD>");
            }
        }
    }
    return view.toString();
}