﻿var _tu=50,dir=1,page=1,ost_max,ost,moveState=false,x0,y0,divX0,divY0;
var hl_back_color = "#444444";
//var hl_frnt_color = "";
var SSL;
var Timer,tmr,tp;
var as,ds;
var isTime = false;
var isgl = false;
var _ha,_hh;
var csr = new Array(rt);
var ofrm = top.frames['wf'];
//var page_load=true;
var t_=1000;
var th_=6000;
var tx_=1000;
var tw_=10000;
var tb_=60000;
var pr;
var pc;
var pf;

function _cs_()
{
    if(stl == "rainbow")
    {
        stl = "simple";
    }
    else
    {
        stl = "rainbow";
    }
    location.reload();
//    window.open(document.url, "_self");
}
function defPosition(event) 
{
    var x = y = 0;
    if (document.attachEvent != null)  // Internet Explorer & Opera
    {
        x = window.event.clientX + document.documentElement.scrollLeft + document.body.scrollLeft;
        y = window.event.clientY + document.documentElement.scrollTop + document.body.scrollTop;
    }
    if (!document.attachEvent && document.addEventListener)  // Gecko
    {
        x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
    }
    return {x:x, y:y};
}

function initMove(div, event) 
{
    var event = event || window.event;
    x0 = defPosition(event).x;
    y0 = defPosition(event).y;
    divX0 = parseInt(div.style.left);
    divY0 = parseInt(div.style.top);
    moveState = true;
}

document.onmouseup = function() 
{
    moveState = false;
}

function moveHandler(div, event) 
{
    var event = event || window.event;
    if (moveState) 
    {
        div.style.left = divX0 + defPosition(event).x - x0 + "px";
        div.style.top  = divY0 + defPosition(event).y - y0 + "px";
    }
}

function _fH()
{
    for(var i=1;i<=rt;i++)
    {
        var _s=ofrm.document.getElementById('d'+i);
        var _d=document.getElementById('c'+i);
        if(_s==null||_d==null)continue;
        _d.style.width=_s.clientWidth + 'px';
    }
}
function _tH()
{
    var _fO=0;
    var efrm=ofrm.frameElement;
    var vobj=efrm;
    while(vobj!=null)
    {
        _fO+=vobj['offsetTop'];
        vobj=vobj.offsetParent;
    }
    var ch=document.documentElement.clientHeight;
    var cl=document.getElementById('divStockSymbolList');
    _fO+=cl['offsetHeight'];
    _fO+=3;
    var df = ch-_fO;
    if(df >= 0)
    {
        efrm.style.height=df+"px";
    }
}
function _rI(){_fH();_tH();}window.onresize=_tH;
function _SH(){var oD1=document.getElementById('divStockSymbolList');var oD2=document.getElementById('head_big');var oA=document.getElementById('lblAutoScroll');var oL1=document.getElementById('lblShowTools');var oL2=document.getElementById('lblHideTools');if(oD1.style.display=='none'){oD1.style.display='';oD2.style.display='';oL1.style.display='none';oL2.style.display='';oA.style.display='none';if(typeof(_sd)!='undefined'){clearTimeout(_sd);delete _sd;}}else{oD1.style.display='none';oD2.style.display='none';oA.style.display='';oL1.style.display='';oL2.style.display='none';}_tH();}
function _AS(){var oL=document.getElementById('asr');if(typeof(_sd)=='undefined'||_sd==null)_DS();else{clearTimeout(_sd);delete _sd;}}
function _DS(){ofrm.scrollBy(0,dir*page);if(ofrm.scrollY>=ofrm.scrollMaxY||ofrm.scrollY<=0){dir*=-1;_sd=setTimeout('_DS()',5000);return;}_sd=setTimeout('_DS()',_tu);}

function cgs(css)
{
    var wr;
    if(resolution == "1024")
    {
        wr = w1024;
    }
    else if(resolution == "1280")
    {
        wr = w1280;
    }

    var ww = 0;
    var rts = 0;
    var ct = new Array(rt);
    for(var i = 0; i < rt; i++)
    { 
        ct[i] = Number(css[i]);
        if(_hv[i]) 
        {
            rts++;
            ww += ct[i];
        }
    }
    if (ww < wr)
    {
        var d = wr - ww;
        var f = Math.floor(d / rts);
        var r = d % rts;
        if (f > 0)
        {
            for(var i = 0; i < rt; i++)
            {
                 if(_hv[i])
                 {
                    ct[i] += f;
                 }
            }
        }
        for(var i = 0; i < r; i++)
        { 
            if(_hv[i])
            {
                ct[i] += 1;
            }
        }
    }
    if(typeof(csr[0]) == "undefined")
    {
        csr = ct;
    }
    else
    {
        for(var i = 1; i < rt; i++) 
        {
            if(Math.abs(ct[i] - csr[i])> 5)
            {
                 csr = ct;
                 break;
            }
        }
    }
}
function scp()
{
    var e = document.getElementById("panholder");
    e.style.display = "block";
    e.style.position = "absolute";
    e.style.left = "450px";
    e.style.top = "20px";
}
function ccp()
{
    var e = document.getElementById("panholder");
    e.style.display = "none";
}

function _c_h()
{
    var table=ofrm.document.getElementById("Table1");
    if(typeof(as) == "undifined" || as == null) return;
    var cd = (new Date()) - th_;
    for(var i=0,slen=SSL.length;i<slen;i++)
    {
    	var r = i + 1;
        var rw = table.rows[r];
        var rf = null;
        if(ss[i].length > 0) rf = document.getElementById("r"+r);
        for(var j = 0; j < rt; j++)
        {
            if(as[i][j].length > 0  && ds[i][j] < cd)
            {
//                table.rows[r].cells[j].style.color = "";
                rw.cells[j].style.backgroundColor = "";
                if(rf != null)
                {
                    rf.cells[j].style.backgroundColor = "";
                }
                as[i][j] = "";
                ds[i][j] = 0;
            }
        }
    }
}
function gcc(rd)
{
    var cc="yellow_g";
   
    if(rd.indexOf("FL")!=-1)
    {
        if(stl == "simple")
        {
            cc="red_g";
        }
        else
        {
            cc="blue_g";
        }
    }
    else if(rd.indexOf("CE")!=-1)
    {
        if(stl == "simple")
        {
            cc="lime_g";
        }
        else
        {
            cc="fuchsia_g";
        }
        
    }
    else
    {
        if(rd.indexOf("▲")!=-1)
        {
            cc="lime_g";
        }
        else if(rd.indexOf("▼")!=-1)
        {
            cc="red_g";
        }
    }
    return cc;
}
function _g_c(s,i)
{
    if(stl == "simple")
    {
        return "";
    }
    if(s == "ATO")
    {
        return c_yell;
    }
    else if(s == "ATC")
    {
        return c_yell;
    }
    var n = Number(s);
    var c = "";
    if(n > pr[i] && n < pc[i])
    {
        c = c_lime;
    }
    else if(n < pr[i] && n > pf[i])
    {
        c = c_red;
    }
    else if(n == pr[i])
    {
        c = c_yell;
    }
    else if(n == pc[i])
    {
        c = c_fuch;
    }
    else
    {
        c = c_blue;
    }
    return c;
}
function request()
{
    _c_h();

    $.jmsajax(
        {
            type: "POST",
            url: "Default.aspx",
            method: "GetStockChanges",
            data: { lang_in: String(lng)},
            success: function(data) 
            {
                if(data[0] == "Exception occured")
                {
                    if(Timer!=null){clearTimeout(Timer);}
                    Timer=window.setTimeout("_l_p();",t_);
                    return;
                }
                mm = data[0].split("+");
                umm();
                css=data[1].split(",");
                if(css != null && css.length == rt)
                {
                    cgs(css);
                }
                if(data[2] == "0")
                {
                    if(Timer!=null){clearTimeout(Timer);}
                    if(isTime)
                    {
                        Timer=window.setTimeout("_l_p();",t_);
                    }
                    else
                    {
                        Timer=window.setTimeout("request();",t_);
                    }
                    return;
                }
                _a_c(data);
            }
        });
    if(Timer!=null){clearTimeout(Timer);}
    
    _rI();
//    FixRow();

    if(isTime)
    {
        Timer=window.setTimeout("_l_p();",t_);
    }
    else
    {
        Timer=window.setTimeout("request();",t_);
    }
    
}
function _l_p()
{
    _c_h();
    
    $.jmsajax(
    {
        type: "POST",
        url: "Default.aspx",
        method: "GetStockPrice",
        data: { lang_in: String(lng) },
        success: function(data) 
        {
            isgl = false;
            if(data[0] == "No Stock Grid Data Found")
            {
                if(Timer!=null){clearTimeout(Timer);}
                Timer=window.setTimeout("_l_p();",t_);
                return;
            }
            else if(data[0] == "Exception occured")
            {
                if(Timer!=null){clearTimeout(Timer);}
                Timer=window.setTimeout("_l_p();",t_);
                return;
            }
            mm = data[0].split("+");
            umm();
            var css=data[1].split(",");
            if(css != null && css.length == rt)
            {
                cgs(css);
            }
            var nR = data.length - 2;
            if(nR <= 0)
            {
                if(Timer!=null){clearTimeout(Timer);}
                Timer=window.setTimeout("_l_p();",t_);
                return;
            }
            
            var table=ofrm.document.getElementById("Table1");
            if(table==null){return;}

            for(var r=1;r<nR;r++)
            {
                var arr=data[r+1].split("+");
                var cs=gcc(arr[kc]);
                var rw = table.rows[r]
                var rf = null;
                if(ss[r-1].length > 0) rf = document.getElementById("r" + r);
                for(var c = 1; c < rt; c++)
                {
                    if(rw.cells[c].innerHTML == arr[c])
                    {
                        continue;
                    }
                    if(c == kc)
                    {
                        var cs=gcc(arr[c]);
                        rw.cells[c].className = cs;
                        rw.cells[c-1].className = cs;
                        rw.cells[c-2].className = cs;
                        if(rf != null)
                        {
                            rf.cells[c].className = cs;
                            rf.cells[c-1].className = cs;
                            rf.cells[c-2].className = cs;
                        }
                    } 
                    else
                    {
//                        rw.cells[c].style.color = hl_frnt_color;
                        rw.cells[c].style.backgroundColor = hl_back_color;
                        if(rf != null)
                        {
                            rf.cells[c].style.backgroundColor = hl_back_color;
                        }
                    }
                    as[r-1][c] = arr[c];
                    ds[r-1][c] = new Date();
                }
            }
            if(tmr!=null){clearTimeout(tmr);}
            tmr=window.setTimeout("_c_d();",tx_);
            
        }
    });

    if(tp!=null){clearTimeout(tp);}
    tp=window.setTimeout("SetTime();",tb_);
    isTime = false;
    
    _rI();
//    FixRow();

    if(Timer!=null){clearTimeout(Timer);}
    Timer=window.setTimeout("request();",t_);
}
function PageLoad()
{
//    loadCookie();
    ChangeLang(lng);
    
    $.jmsajax(
        {
            type: "POST",
            url: "Default.aspx",
            method: "GetSymbolList",
            success: function(data) 
            {
		        if(data == null)
		        {
                    if(Timer!=null){clearTimeout(Timer);}
		            Timer=window.setTimeout("_l_p();",tw_);
			        return;
		        }
		        SSL = data;
                lsl();
                lg();
            }
        });
    wfg();
    if(tp!=null){clearTimeout(tp);}
    tp=window.setTimeout("SetTime();",tb_);
    isTime = false;
//    ChangeLang(lng);
}
function wfg()
{
    if(isgl)
    {
//        if(tmr!=null){clearTimeout(tmr);}
//        tmr=window.setTimeout("FixRow();",100);
        FixRow();
        if(Timer!=null){clearTimeout(Timer);}
        Timer=window.setTimeout("request();",t_);
        return;
    }
    else
    {
        if(Timer!=null){clearTimeout(Timer);}
        Timer=window.setTimeout("wfg();",tx_);
    }
    if(isTime)
    {
        PageLoad();
    }
}
function SetTime()
{
    isTime = true;
}
function reload()
{
    ccp();
    lg();
    FixRow();
    if(tp!=null){clearTimeout(tp);}
    tp=window.setTimeout("SetTime();",tb_);
    isTime = false;
//    _rI();
}
function umm()
{
    if(typeof(ml) != "undefined")
    {
        var strHeader = "<table id=\"dgnews\" class=\"dgnews\" border=\"1\" cellpadding=\"0\" cellspacing=\"0\" width=\"100%\"><tr>";
        var mmlen = mm.length;
        var ix = 0;
        var cs=mmlen>1?gcc(mm[1]):"";
        strHeader += "<td>" + ml[ix] + "<span id=\"Marketinfor_VNindex\" class=\"" + cs + "\">" + (ix>=mmlen?"":mm[ix]) + "</span></td>";
        strHeader += "<td>" + ml[++ix] + "<span id=\"Marketinfor_thaydoi\" class=\"" + cs + "\">" + (ix>=mmlen?"":mm[ix])+ "</span></td>";

        strHeader += "<td>" + ml[++ix] + "<span id=\"Marketinfor_SoGD\">" + (ix>=mmlen?"":mm[ix])+ "</span></td>";
        strHeader += "<td>" + ml[++ix] + "<span id=\"Marketinfor_KLGD\">" + (ix>=mmlen?"":mm[ix])+ "</span></td>";
        strHeader += "<td>" + ml[++ix] + "<span id=\"Marketinfor_GTGD\">" +(ix>=mmlen?"":mm[ix])+ "</span></td>";
        strHeader += "<td>" + ml[++ix] + " " + (ix>=mmlen?"":mm[ix])+ "</td>";
        strHeader += "<td>" + ml[++ix] + " " + (ix>=mmlen?"":mm[ix])+ "</td></tr></table>";
        document.getElementById("tdMarketInfo").innerHTML=strHeader;
    }
}

function RemoveAllSymbols()
{
    for(var i=0,sln=ss.length;i<sln;i++)
    {
        if(ss[i].length > 0)
        {
            ss[i]="";
            var obj=document.getElementById("s"+(i+1));
            if(obj !=null)
            {
                obj.className="unpressed";
            }
        }
    }
    var tm=document.getElementById('Table2');
    for(var i=tm.rows.length-1;i>1;i--)
    {
        var e = ofrm.document.getElementById([tm.rows[i].id]);
        e.style.display='';
        tm.deleteRow(i);
    }
    s_c=0;
    _tH();
    iscs = false;
}

function _a_c(data)
{
    var table=ofrm.document.getElementById("Table1");
    if(table==null){return;}
    var nR=data.length - 2;
    for(var i = 0; i < rt; i++)
    {
        table.rows[0].cells[i].style.width = csr[i] + "px";
    }
    for(var i=0;i<nR;i++)
    {
        var ra = data[i+2].split("+");
        if(ra == "0")
        {
             break;
        } 
        var r=Number(ra[0]);
        var rw=table.rows[r];
        if(rw==null){continue;}
        
        var rf = null;
        if(ss[r-1] != "") rf =document.getElementById("r" + r);
        for(var j=1,rlen=ra.length;j<rlen;j++)
        {
            var rd = ra[j].split(":");
            if(rd[0] == kc)
            {
                var cs=gcc(rd[1]);
                rw.cells[kc].className = cs;        
                rw.cells[kc-1].className = cs;        
                rw.cells[kc-2].className = cs;        
                if(rf != null)
                {
                    rf.cells[kc].className = cs;        
                    rf.cells[kc-1].className = cs;        
                    rf.cells[kc-2].className = cs;        
                }
            } 
            else
            {
                rw.cells[rd[0]].style.backgroundColor = hl_back_color;
                if(rf != null)
                {
                    rf.cells[rd[0]].style.backgroundColor = hl_back_color;
                }
            }
            as[r-1][rd[0]] = rd[1];
            ds[r-1][rd[0]] = new Date();
        }
    }
    if(tmr!=null){clearTimeout(tmr);}
    tmr=window.setTimeout("_c_d();",tx_);
}
function FixRow()
{
    if(typeof(ss) == "undefined")
    {
    	return;
    }
    var tm=document.getElementById('Table2');
    if(tm == null) return;
    for(var i=tm.rows.length-1;i>1;i--)
    {
        ofrm.document.getElementById([tm.rows[i].id]).style.display='';
        tm.deleteRow(i);
    }
    var rc=tm.rows.length;
    for(var i=0,sln=ss.length;i<sln;i++)
    {
        if(ss[i].length > 0)
        {
            var r=tm.insertRow(rc++);
            r.id="r"+(i+1);
            if(browser == "ie")
            {
                r.setAttribute("onclick",function(){rw_click(this)});
                r.setAttribute("ondblclick",function(){ro_dbclick(this)});
            }
            else
            {
                r.setAttribute("onclick","rw_click(this)");
                r.setAttribute("ondblclick","ro_dbclick(this)");
            }
            if(r.id == rs_)r.className="row_ovr";
            else r.className="row";
            var dr=ofrm.document.getElementById(r.id);
            if(dr != null)
            {
                for(var cc=0;cc<rt;cc++)
                {
                    var c=r.insertCell(cc);
                    c.innerHTML=dr.childNodes[cc].innerHTML;
                    c.className=dr.childNodes[cc].className;
                    c.style.color = dr.childNodes[cc].style.color;
                    c.style.backgroundColor = dr.childNodes[cc].style.backgroundColor;
                    c.id="m"+(cc+1);
                    if(_hv[cc] == false)
                    {
                        c.style.display='none';
                    }
                }
                dr.style.display='none';
            }
        }
//        a=b;
    }
    _rI();
//    saveCookie();
//    _tH();
}
function spover(obj){if(obj==null) return;var obi;if(obj.id.indexOf("p") == 0){obi = document.getElementById("f" + obj.id.substr(1));}else{obi = document.getElementById("p" + obj.id.substr(1));}if(obj.className.indexOf("u")!=-1){obj.className="unpress_over";obi.className="unpress_over";}else{obj.className="press_over";obi.className="press_over";}}
function spout(obj){if(obj==null) return;var obi;if(obj.id.indexOf("p") == 0){obi = document.getElementById("f" + obj.id.substr(1));}else{obi = document.getElementById("p" + obj.id.substr(1));}if(obj.className.indexOf("u")!=-1){obj.className="unpress";obi.className="unpress";}else{obj.className="press";obi.className="press";}}
function spclick(obj)
{
    if(obj==null) return;
    var obi,bo;
    if(obj.id.indexOf("p") == 0)
    {
        obi = document.getElementById("f" + obj.id.substr(1));
        bo = true;
    }
    else
    {
        obi = document.getElementById("p" + obj.id.substr(1));
        bo = false;
    }
    if(obj.className.indexOf("u")!=-1)
    {
        _rD--;
        if(bo) obj.innerHTML = "show";
        else obi.innerHTML = "show";
        obj.className="press_over";
        obi.className="press_over";
        _hv[obj.id.substr(1)]=false;
    }
    else
    {
        if(_rD + 1 > rcnt) return;
        _rD++;
        if(bo) obj.innerHTML = "hide";
        else   obi.innerHTML = "hide";
        obj.className="unpress_over";
        obi.className="unpress_over";
        _hv[obj.id.substr(1)]=true;
    }
    iscs = false;
    saveCookie();
}

function ChangeLang(lang)
{
    $.jmsajax(
        {
            type: "POST",
            url: "Default.aspx",
            method: "ChangeLang",
            data: { lang_in: String(lang) },
            success: function(data) 
            {
                umi(data);
                lng = lang;
                iscs = false;
                lh();

                if(typeof(ss) != "undefined" && isgl)
                {
                    umm();
//                    FixRow();
                }
                else
                {
                    saveCookie();
                }
            }
        });
}

function saveCookie()
{
    var dtExpires=new Date();
    var dtExpiryDate="";

    dtExpires.setTime(dtExpires.getTime()+864000000);//10*24*60*60*1000

    dtExpiryDate=dtExpires.toGMTString();

    document.cookie="styl=" + stl + "; expires=" + dtExpiryDate;
    document.cookie="lang=" + lng + "; expires=" + dtExpiryDate;
 
    var val = "true";
    for(var i = 1; i < rt; i++)
    {
        val += "+" + _hv[i];
    }

    document.cookie="cols=" + val + "; expires=" + dtExpiryDate;

    val = "";
    if(typeof(ss) != "undefined")
    {
        for(var i=0,slen=ss.length;i<slen;i++)
        {
            if(ss[i].length > 0)
            {
                val += "+" + SSL[i];
            }
        }
        val = val.substr(1);
        document.cookie="rows=" + val + "; expires=" + dtExpiryDate;
    }
    iscs = true;
}

window.onclose = saveCookie;
window.onunload = saveCookie;

function lsl()
{
    var rL=26;
    var TBSSL="<table id='tblSymList' border='0' width='100%'>";
    var i=0;
    var pres;
    if (SSL!=null)
    {
        var ssl_len = SSL.length; 
        ss=new Array(ssl_len);
        as=new Array(ssl_len);
        ds=new Array(ssl_len);
        pr=new Array(ssl_len);
        pc=new Array(ssl_len);
        pf=new Array(ssl_len);
        var _stx = 0;
        var _stb = typeof(_st) != "undefined" ? true : false;
        var _stl;
        if(_stb)
        {
            _stl = _st.length;
        }
        for(i=0;i<ssl_len;i++)
        {
            as[i] = new Array(rt);
            ds[i] = new Array(rt);
            for(var j = 0; j < rt; j++) 
            {
                as[i][j] = "";
                ds[i][j] = 0;
            }
            
            if((i%rL)==0)
            {
                if(i!=0)
                {
                    TBSSL+="</tr><tr>";
                }
                else
                {
                    TBSSL+="<tr>";
                }
            }
            if(_stb &&  _stx < _stl && SSL[i] == _st[_stx])
            {
                _stx++;
                ss[i] = "x";
                pres = "";
            }
            else
            {
                ss[i]="";
                pres = "un";
            }
            TBSSL+="<td id=\"s"+(i+1)+"\" class=\"" + pres + "pressed\" onmouseover=\"ssover(this);\" onclick=\"ssclick(this);\" onmouseout=\"ssout(this);\">"+SSL[i]+"</td>";
        }
        var r=rL-(ssl_len%rL);
        TBSSL+="<td colspan='"+r+"'></td>";
        TBSSL+="</tr></table>";
        document.getElementById("TBSSL").innerHTML=TBSSL;
    }
}