﻿function GetPrice() {
    xPrice = CreateXMLHttpRequest();
    window.clearTimeout(intPrice);
    var url = "Process.aspx?Type=MS"
    GetData(xPrice, url, ShowData);
}

function ShowData() {
    if (xPrice.readyState == 4)
    {
        if(xPrice.status == 200)
        {
            if (xPrice.responseText.length <= 1) {intPrice = setTimeout('GetPrice()', Time2Refresh); return;}
            var data = xPrice.responseText.split('^');

            ShowMarketInfo(data[0]);

            ShowStockPrice(data[1]);
            
            counter += 1;
            window.status = "Loaded " + counter + " times.";
            intPrice = setTimeout('GetPrice()', Time2Refresh);
        }
        else
        {
            counter += 1;
            window.status = "Loaded" + counter;
            intPrice = setTimeout('GetPrice()', Time2Refresh);
        }
    }
}

/////////////

function PriceTableHeader()
{
    var s = new StringBuilder();
    s.append("<table id='tableHeader' class='datalist' style='width:100%;'>");
    s.append("<tr align='center'>");
    s.append("<td rowspan='2' class='HCol01' style='width:1%;'>" + langTxt.Txt_TblCol_No + "</td>");
    s.append("<td rowspan='2' colspan='2' class='HCol02' style='width:3%;'>" + 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_FRoom + "</td>");
    s.append("<td rowspan='2' class='HCol06' style='width:3%;'>" + langTxt.Txt_TblCol_FRoomDev + "</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("<td class='HCol08' colspan='2'>" + langTxt.Txt_TblCol_Session1 + "</td>");
    s.append("<td class='HCol09' colspan='2'>" + langTxt.Txt_TblCol_Price + "</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("<td id='hdrPrice1' class='HCol08S1' width='2%'>" + langTxt.Txt_TblCol_Price + "</td>");
    s.append("<td id='hdrVol1' class='HCol08S1' width='3%'>" + langTxt.Txt_TblCol_Vol + "</td>");
    s.append("<td id='hdrPrice2' class='HCol09S1' width='2%'>" + langTxt.Txt_TblCol_Highest + "</td>");
    s.append("<td id='hdrVol2' class='HCol09S1' width='2%'>" + langTxt.Txt_TblCol_Lowest + "</td>");             
    s.append("</tr>");
    
    return s.toString();
}

function ShowStockPrice(csvStock) {
    if (csvStock == null) { return; }
    var newdata = csvStock.split('|');
    if (!price) {price = newdata;}
    if (price.length != newdata.length) { price = newdata; }
  
    var view = new StringBuilder();
    var alternate = ""; // odd, even row for alternative color
    var iNo = 1;

    view.append(PriceTableHeader());

    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 flStk1_Ref  = parseFloat(stock[1]);
                var flStk2_Ceil = parseFloat(stock[2]);
                var flStk3_Fl = parseFloat(stock[3]);
                var flStk10_LastPrice = parseFloat(stock[10]);
                var flChange = 0;
                if (flStk1_Ref > 0) {
                    flChange = (flStk10_LastPrice - flStk1_Ref).toFixed(1);
                }
                
                // No
                view.append("<TR onmousedown='javascript:rowClicked(this)'><TD width='1%' class='DCol01" + alternate + "'><font class='DVal01'>" + (iNo) + "</font></TD>");
                iNo++;
                // Stock symbol
                view.append("<TD class='DCol02" + alternate + "' width='3%' style='border-right-width: 0px'><a href='http://www.hsc.com.vn/hscportal/corporate/view.do?companyCode=" + stock[0] + "' class='StockSymbol' target='_blank'>" + stock[0] + "</a></TD>");                
                // Up/down arrow
                if ((stock[10] != "") && (stock[10] != "0"))
                {
                    if (flChange != 0)
                    {
                        //view.append("<font class='" + (flChange > 0 ? "Inc2'>▲</font>" : "Dec2'>▼</font>"));
                        view.append("<TD class='DCol02" + alternate + "' style='width: 1%; border-left: 0px; border-right-width: 1px'>" + (flChange > 0 ? "<font class='Inc2'>▲</font>" : "<font class='Dec2'>▼</font>") + "</TD>");
                    }
                    else
                    {
                        //view.append("<font class='RefPrice'></font>");
                        view.append("<TD class='DCol02" + alternate + "' style='width: 1%; border-left: 0px; border-right-width: 1px'><font class='RefPrice3'>&nbsp;■</font></TD>");
                    }
                }
                else
                {
                    view.append("<TD class='DCol02" + alternate + "' style='width: 1%; border-left: 0px; border-right-width: 1px'><font class='RefPrice3'>&nbsp;■</font></TD>");
                }
                
                // Ref, Ceiling, Floor
                view.append("<TD class='DCol03" + alternate + "' width='3%'><font class='RefPrice'>" + formatPPDNumber(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

                // Current Foreign Room
                view.append("<TD class='DCol06" + alternate + "' width='4%'><font class='DVal06'>" + formatPPDNumber(stock[18]) + "</font></TD>");
                // Foreign Buy
                view.append("<TD class='DCol06" + alternate + "' width='3%'><font class='Inc2'>" + formatPPDNumber(stock[19]) + "</font></TD>");
                

                //Mua 
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[4], stock[4], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[4], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[5], stock[5], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[4], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[6], stock[6], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[6], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[7], stock[7], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[6], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[8], stock[8], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[8], "Ceiling2"));
                view.append(createTdsBidOffer("width='3%'", "DCol07S1" + alternate, old[9], stock[9], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[8], "Ceiling2"));

                //gia thay doi
                var CEFL = "";
                if (stock[10] != "" && stock[10] != "0" && flChange != 0)
                {
                        var fontOpenTag = "<font>";
                        if (flChange > 0)
                        {
                            if (stock[10] == stock[2]) 
                            {
                                CEFL = "CE";
                                fontOpenTag = "<font class='Ceiling3'>";
                            }
                            else
                            {
                                fontOpenTag = "<font class='Inc2'>";
                            }
                        }
                        else
                        {
                            if (stock[10] == stock[3]) 
                            {
                                CEFL = "FL";
                                fontOpenTag = "<font class='Floor3'>";
                            }
                            else
                            {            
                                fontOpenTag = "<font class='Dec2'>";
                            }
                        }
                
                    view.append("<TD class='DCol10S1" + alternate + "' width='3%'>" + fontOpenTag + formatPPDNumber(stock[10]) + "</font></TD>");
                    view.append("<TD nowrap class='DCol10S1" + alternate + "' width='3%'>");
                    view.append(fontOpenTag);
                    view.append(CEFL);
                    view.append((flChange > 0 ? "+" : ""));
                    view.append(flChange != 0 ? flChange : " ");
                    view.append("</font></TD>");
                    view.append("<TD class='DCol10S1" + alternate + "' width='3%'>" + fontOpenTag + formatPPDNumber(stock[11]) + "</font></TD>");
                }
                else
                {
                    view.append("<TD class='DCol10S1" + alternate + "' width='3%'>" + "<font class='RefPrice3'>" + formatPPDNumber(stock[10]) + "</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'>" + formatPPDNumber(stock[11]) + "</font></TD>");
                }
               
               
                //Bán
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[12], stock[12], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[12], "Floor2"));
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[13], stock[13], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[12], "Floor2"));                    
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[14], stock[14], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[14], "Floor2"));
                view.append(createTdsBidOffer("width='3%'", "DCol11S1" + alternate, old[15], stock[15], flStk1_Ref, flStk2_Ceil, flStk3_Fl, stock[14], "Floor2"));
                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("<TD class='DCol08S1" + alternate + "'><font class='DVal08S1'>" + formatPPDNumber(stock[22]) + "</font></TD>");
                view.append("<TD class='DCol08S1" + alternate + "'><font class='DVal08S1'>" + formatPPDNumber(stock[23]) + "</font></TD>");
                view.append("<TD class='DCol09S1" + alternate + "'><font class='DVal09S1'>" + formatPPDNumber(stock[20]) + "</font></TD>");
                view.append("<TD class='DCol09S1" + alternate + "'><font class='DVal09S1'>" + formatPPDNumber(stock[21]) + "</font></TD>");

                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();

    adjustPollingInterval((newdata.length - 1));
}

function createTdsBidOffer(opt, colStyle, old, stock, ref, ceil, floor, price, styleATOATC)
{
    var view = new StringBuilder();
    if (old != stock)                
    {
        view.append("<TD class='ColChanged' " + opt + ">" + formatPPDNumber(stock) + "</TD>");                
    }
    else
    {
        view.append("<TD class='" + colStyle + "' " + opt + ">");
        if ((price == "ATO") || (price == "ATC"))
        {
            view.append("<font class='" + styleATOATC + "'>" + formatPPDNumber(stock) + "</font></TD>");
        }
        else
        {
            var flPrice = parseFloat(price);
            if (flPrice > ref)
            {
                if (flPrice == ceil)
                {
                    view.append("<font class='Ceiling2'>" + formatPPDNumber(stock) + "</font></TD>");
                }
                else
                {
                    view.append("<font class='Inc'>" + formatPPDNumber(stock) + "</font></TD>");
                }
            }
            else if (flPrice < ref)
            {
                if (flPrice == floor)
                {
                    view.append("<font class='Floor2'>" + formatPPDNumber(stock) + "</font></TD>");
                }
                else
                {            
                    view.append("<font class='Dec'>" + formatPPDNumber(stock) + "</font></TD>");
                }
            }
            else 
            {
                view.append("<font class='RefPrice2'>" + formatPPDNumber(stock) + "</font></TD>");
            }
        }
    }
    return view.toString();
}
