﻿
function procesare(robj) {
    if (robj.readyState != 4 || robj.status != 200) return;
    var sst = robj.responseText;
    verif(sst);
    b = setTimeout('fnload()', 4444);
}

function fnload() {
    //cerator.runAJAX();
    var RequestObj = daRequestObject();
    if (RequestObj == null) return;
    RequestObj.open("GET", timestampeaza('whatsupp.aspx'), true);
    RequestObj.onreadystatechange = function() { procesare(RequestObj); };
    RequestObj.send('');
};

function start() {
    b = setTimeout('fnload()', 4444);
    c = setTimeout('albire()', 1234);
}
// gata wup


var catesecunde = 2;
var culc = '';
var corate = [[null, 0, '']];
var defaultClass = '';
var rademsaj = 0;
this.iduriupd = new Array();
function addidupd(ids) {
    iduriupd = iduriupd.concat(ids.split(','));
}

function modifintabel(tbl, simbol, camp, vlr) {
    punenva(damicelula(tbl, simbol, camp), vlr);
    return;
}

function dahtmul(elem) {
    if (elem == null) return '';
    var ibr = elem.innerHTML.indexOf('<br');
    if (ibr > 0) return elem.innerHTML.substring(0, ibr);
    try {
        if (typeof (elem.innerText) != "undefined") //IE
            return elem.innerText;
        else
            return elem.textContent;
    }
    catch (Error) { }
    return "999";
    // return sim.replace(/^\s*|\s*$/g, '');
}

function daptext(elem) {
    if (elem == null) return '';
    var sir = dahtmul(elem);
    var i = sir.indexOf('<');
    if (i > 0) return sir.substring(i, sir.length - 1);
    else return sir;
}
function punenfata(a, t) {
    var sir = a.innerHTML;
    var i = sir.indexOf('<');
    if (i > 0) a.innerHTML = t + sir.substring(i, sir.length - 1);
    else a.innerHTML = t;
}

function punenvar(rr, icol, nrn) {
    if (icol < 0 || icol >= rr.childNodes.length) return;
    punenva(rr.childNodes[icol], nrn);
}

function punenva(a, n) {
    if (a == null) return;
    var nrsp = String(n).indexOf('/');
    if (nrsp > 0) {
        np1 = Number(n.substr(0, nrsp));
        np2 = Number(n.substring(nrsp + 1, n.length));
        if (np1 == 0 || np2 == 0) return;
        var nrzec = a.innerHTML.indexOf('%') - a.innerHTML.indexOf('.') - 1;
        if (nrzec < 0) nrzec = 0;
        n = (np1 / np2 - 1) * 100; n = n.toFixed(nrzec);        
    }
    re = /,/g;
    n1 = Number(String(daptext(a)).replace(re, '').replace('%', ''));
    n2 = Number(String(n).replace(re, ''));
    //if (a.tagName == 'SPAN') aco = a.parentNode; else aco = a;
    if (a.className != 'fxq_red' && a.className != 'fxq_green')
        defaultClass = a.className;
    dealbit(a, catesecunde);
    //document.getElementById('dedebug').innerHTML = daptext(a) + ' ' + n2;
    if (n1 > n2) a.className = 'fxq_red';
    if (n1 < n2) a.className = 'fxq_green';
    if (n1 > n2 || n2 > n1) a.title = daptext(a);
    if (nrsp > 0) {
        a.innerHTML = n + '%';
        if (n > 0) a.className = 'fxq_green';
        else if (n < 0) a.className = 'fxq_red';
        else a.className = "";
    }
    else
        punenfata(a, fnum(n));
}

function fnum(n) {
    var intPart = Number(n.split('.')[0]);
    var decPart = '';
    if (n.split('.').length > 1 && intPart <10000)
		decPart = '.' + n.split('.')[1];
	if (intPart > 999) 
		return (punevirgula(intPart.toString(10)) + decPart);		
    return n;
}
function punevirgula(s) {
    if (s.length > 3) return punevirgula(s.substr(0, s.length - 3)) + ',' + s.substr(s.length - 3, 3);
    return s;
}

function dealbit(ce, nrsec) {
    var i;
    for (i = 0; i < corate.length; i++) {
        if (corate[i][0] == null || corate[i][0] == ce) break;
    }
    nau = damiacu2() + nrsec;
    //corate[i] = [ce, nau, ce.parentNode.style.backgroundColor];
    
    corate[i] = [ce, nau, ce.className];
}

function albire() {
    var i;
    nau = damiacu2();
    cdp = '';
    //debugger
    for (i = 0; i < corate.length; i++) {
        if (corate[i][0] != null) {
            if (corate[i][1] < nau || corate[i][1] > nau + 99) {
                aco = corate[i][0];
                aco.title = '';
                //if (aco.tagName == 'SPAN') aco = aco.parentNode;
                aco.className = corate[i][2];
                aco.className = defaultClass;
                corate[i][0] = null;
            }
        }
    }
    toutalbire = setTimeout('albire()', 888);
}

function damicelula(tabel, simbol, coloana) {
    var tbl = null;
    try { var test = tabel.childNodes[0]; tbl = tabel; }
    catch (Error) {
        var ata = document.getElementsByTagName('table');
        for (i = 0; i < ata.length; i++) {
            wt = ata[i].getAttribute('whatsup');
            if (wt == tabel) { tbl = ata[i]; break; }
        }
    }
    if (tbl == null) return null;
    var capu = tbl.childNodes[0].childNodes[tbl.childNodes[0].childNodes.length - 1];
    tbl = tbl.childNodes[1];
    var rindu = null;
    //rrs = damirandurile(tabel, simbol);
    for (i = 0; i < tbl.childNodes.length; i++) {
        row = tbl.childNodes[i];
        if (row.childNodes) {
            ieg = simbol.indexOf('=');
            if (ieg > 0 && row.getAttribute) {
                if (row.getAttribute(simbol.substring(0, ieg)) == simbol.substring(ieg + 1, simbol.length))
                { rindu = row; break; }
            }
            else if (dahtmul(row.childNodes[0]) == simbol) { rindu = row; break; }  //return row.childNodes[cln];
        }
    }
    //if (rrs.length > 0) rindu = rrs[0];
    if (rindu == null) return null;
    if (coloana == "") return rindu;
    for (i = 0; i < capu.childNodes.length; i++)
        if (coloana == capu.childNodes[i].innerHTML) return rindu.childNodes[i];
    //    return null;
}

function exista(ceva) {
    return (typeof (ceva) != 'undefined');
}

function damirandurile(tabel, simbol) {
    var rrs = new Array();
    if (tabel == null) return rrs;
    var tbl = tabel.childNodes[1];
    var ieg = simbol.indexOf('=');
    for (var i = 0; i < tbl.childNodes.length; i++) {
        row = tbl.childNodes[i];
        if (exista(row.getAttribute)) {
            if (ieg > 0) {
                if (row.getAttribute(simbol.substring(0, ieg)) == simbol.substring(ieg + 1, simbol.length)) rrs.push(row);
            }
            else if (dahtmul(row.childNodes[0]) == simbol) rrs.push(row);
        }
    }
    return rrs;
}

function damicoloana(tabel, coloana) {
    if (tabel == null) return;
    if (!tabel.childNodes) return;
    if (!tabel.childNodes[0].childNodes) return;
    var capu = tabel.childNodes[0].childNodes[0];
    for (var i = 0; i < capu.childNodes.length; i++)
        if (coloana == capu.childNodes[i].innerHTML) return i;
    return -1;
}

var ultimulid = 0;
function verif(ss) {
    var a1, re, i, aa, wt;
    ss = String(ss);
    re = /<br>/gim;
    aa = ss.split(re);
    ata = document.getElementsByTagName('table');
    //document.getElementById('gi_mesaje').innerHTML = dahtmul(ata[0]);
    for (j = 0; j < aa.length; j++) {
        rind = aa[j].split('|');
        if (Number(rind[0]) > ultimulid) {
            ultimulid = Number(rind[0]);
            var nr2 = rind[3].split(' ');
            noutati(rind, nr2);
            for (i = 0; i < iduriupd.length; i++) {
                aidu = iduriupd[i].split('|');
                if (rind[1] == aidu[0] && rind[2] == aidu[1]) {
                    var o = document.getElementById(iduriupd[i]);
                    catesecunde = 1;
                    if (o != null) {
                        if (aidu[2].indexOf('/') > 0)
                            punenva(o, nr2[Number(aidu[2].substring(0, 1))] + '/' + nr2[Number(aidu[2].substring(2, 3))]);
                        else punenva(o, nr2[Number(aidu[2])]);
                    }
                }
            }

            if (rind[1] == 'OA' || rind[1] == 'OF') {
                an = rind[3].split(' ');
                idul = 'A' + nr2[0]; if (rind[1] == 'OF') idul = 'F' + nr2[0];
                oio = document.getElementById('ordinurm' + idul);
                if (oio != null) {
                    if (nr2[1] == 'A') oio.innerHTML = '&#216;';
                    else { oio.innerHTML = Math.abs(nr2[3]); oio.title = nr2[4]; };
                    oio.style.backgroundColor = '#DDDDAA'; dealbit(oio, 9);
                }
                else
                    if (nr2[1] == 'R' || nr2[1] == 'I') {
                    if (Number(nr2[3]) > 0) coloana = 'cantbid'; else coloana = 'cantask';
                    oio = damicelula('cotatii', simscurt(nr2[2]), coloana); // ordinurmF871741
                    if (oio != null) oio.innerHTML = oio.innerHTML +
                             ' <a id=ordinurm' + idul + ' href="javascript:faceva(\'ordinurm\', \'' + idul + '\')" title=' + nr2[4] + '>' + Math.abs(nr2[3]) + '</a>'
                }
            }

            for (i = 0; i < ata.length; i++) {
                wt = ata[i].getAttribute('whatsup');
                if (wt == rind[1] && (wt == 'XT' || wt == 'GF') ) { // XTXTXTXT
                    catesecunde = 1;
                    modifintabel(ata[i], rind[2], 'bid', nr2[0]);
                    modifintabel(ata[i], rind[2], 'ask', nr2[1]);
                    //
                }
                var cotactiuni = (rind[1] == 'CA' || rind[1] == 'TA');
                if (wt == 'cotatii' && cotactiuni) { // cotatii actiuni
                    catesecunde = 7;
                    if (nr2[0] != "0") modifintabel(ata[i], rind[2], 'upret', nr2[0]);
                    modifintabel(ata[i], rind[2], 'bid', nr2[1]);
                    modifintabel(ata[i], rind[2], 'ask', nr2[2]);
                    modifintabel(ata[i], rind[2], 'cantbid', nr2[3]);
                    modifintabel(ata[i], rind[2], 'cantask', nr2[4]);
                    modifintabel(ata[i], rind[2], 'volum', nr2[5]);
                    modifintabel(ata[i], rind[2], 'val open', nr2[6]);
                    modifintabel(ata[i], rind[2], 'var', nr2[0] + '/' + nr2[7]);
                    //document.getElementById('gi_mesaje').innerHTML = aa[j];
                }
                if (wt == 'cotatii' && rind[1] == 'CF') { // cotatii futures
                    catesecunde = 7;
                    sim = simscurt(rind[2]);
                    //document.getElementById('gi_mesaje').innerHTML = sim;
                    rrs = damirandurile(ata[i], sim);
                    if (rrs.length > 0) {
                        punenvar(rrs[0], damicoloana(ata[i], 'upret'), nr2[0]);
                        punenvar(rrs[0], damicoloana(ata[i], 'bid'), nr2[1]);
                        punenvar(rrs[0], damicoloana(ata[i], 'ask'), nr2[2]);
                        punenvar(rrs[0], damicoloana(ata[i], 'cantbid'), nr2[3]);
                        punenvar(rrs[0], damicoloana(ata[i], 'cantask'), nr2[4]);
                        punenvar(rrs[0], damicoloana(ata[i], 'volum'), nr2[5]);
                        punenvar(rrs[0], damicoloana(ata[i], 'val open'), nr2[6]);
                        punenvar(rrs[0], damicoloana(ata[i], 'var'), nr2[0] + '/' + nr2[7]);
                    }
                    //document.getElementById('gi_mesaje').innerHTML = aa[j];
                }
                if (wt == 'hedging' && (rind[1] == 'CF' || cotactiuni)) { // cotatii - hedging
                    catesecunde = 7;
                    sim = rind[2];
                    var iul = sim.indexOf('_'); if (iul > 0) sim = sim.substring(0, iul);
                    if (rind[1] == 'CF') {
                        modifintabel(ata[i], 'simbolf=' + rind[2], 'bidf', nr2[1]);
                        modifintabel(ata[i], 'simbolf=' + rind[2], 'askf', nr2[2]);
                    }
                    rrs = damirandurile(ata[i], sim);
                    for (var jrs = 0; jrs < rrs.length; jrs++) {
                        if (cotactiuni) {
                            if (nr2[0] != "0") punenvar(rrs[jrs], damicoloana(ata[i], 'upret'), nr2[0]);
                            punenvar(rrs[jrs], damicoloana(ata[i], 'bidS'), nr2[1]);
                            punenvar(rrs[jrs], damicoloana(ata[i], 'askS'), nr2[2]);
                            punenvar(rrs[jrs], damicoloana(ata[i], 'var'), nr2[0] + '/' + nr2[7]);
                        }
                        var ask = Number(rrs[jrs].childNodes[damicoloana(ata[i], 'askS')].innerHTML.replace(/,/g, ''));
                        var bidf = Number(rrs[jrs].childNodes[damicoloana(ata[i], 'bidf')].innerHTML.replace(/,/g, ''));
                        var bid = 0; if (damicoloana(ata[i], 'bidS') >= 0)
                            bid = Number(rrs[jrs].childNodes[damicoloana(ata[i], 'bidS')].innerHTML.replace(/,/g, ''));
                        var comisf = 1.4; var comisa = 0.3;
                        if (ask > 0 && bidf > 0) {
                            if (bid > ask) ask = bid;
                            var marja = Number(rrs[jrs].getAttribute('marja'));
                            var factor = Number(rrs[jrs].getAttribute('factor'));
                            var nrzile = Number(rrs[jrs].getAttribute('nrzile'));
                            var randn = (bidf - comisf * 2 / factor - ask * (1.0008 + 0.02 * comisa)) / (ask + marja / factor);
                            var rand = randn * 360 / nrzile; if (rand < -0.99) rand = -0.99;
                            var colrand = damicoloana(ata[i], 'rand.');
                            var colrandan = damicoloana(ata[i], 'rand.an');
                            if (colrandan >= 0) {
                                rrs[jrs].childNodes[colrandan].className = '';
                                if (rand > 0.00005) rrs[jrs].childNodes[colrandan].className = 'fxq_green';
                                if (rand < -0.00005) rrs[jrs].childNodes[colrandan].className = 'fxq_red';
                            }
                            if (colrand >= 0) rrs[jrs].childNodes[colrand].innerHTML = '' + Number(randn * 100).toFixed(1) + '%';
                            if (colrandan >= 0) rrs[jrs].childNodes[colrandan].innerHTML = '<b>' + Number(rand * 100).toFixed(1) + '</b>%';
                        }
                    }
                } // hedging
                if (wt == 'portof' && (rind[1] == 'CF' || rind[1] == 'CA')) updateportofoliu(ata[i], rind, nr2); // portofoliu futures/actiuni
                if (wt == 'ordine' && (rind[1] == 'OA' || rind[1] == 'OF')) {
                    try { submite(ata[i]); }
                    catch (Error) { }
                }
                if ((wt == 'tranzactii' || wt == 'portof') && (rind[1] == 'TA' || rind[1] == 'TF') && rind[2] == 'X') {
                    try { submite(ata[i]); }
                    catch (Error) { }
                }
            } // for j
        } // sunt noi
    }
    //if (aa.length > 0) ultimulid = Number(aa[aa.length - 1].split('|')[0]);
}

function updateportofoliu(tbla, rind, nr2) {
    catesecunde = 5;
    var sim = simscurt(rind[2]);
    var rrs = damirandurile(tbla, sim);
    if (rrs.length == 0) return;
    var ipret = damicoloana(tbla, 'pret');
    punenvar(rrs[0], ipret, nr2[0]);
    var isold = damicoloana(tbla, 'sold');
    var icost = damicoloana(tbla, 'cost');
    var ieval = damicoloana(tbla, 'eval');
    if (isold > 0 && icost > 0 && ieval > 0) {
        var factor = 1;
        if (rind[1] == 'CF') {
            factor = Number(rrs[0].getAttribute('factor'));
            factor = factor * html2numar(rrs[0].childNodes[isold]) * (html2numar(rrs[0].childNodes[ipret]) - html2numar(rrs[0].childNodes[icost]));
        }
        if (rind[1] == 'CA') factor = html2numar(rrs[0].childNodes[isold]) * html2numar(rrs[0].childNodes[ipret]);
        punenvar(rrs[0], ieval, Number(factor).toFixed(0));
        rrs = tbla.childNodes[1].childNodes;
        var evt = 0;
        for (ir = 0; ir < rrs.length; ir++)
            evt = evt + html2numar(rrs[ir].childNodes[ieval]);
        if (tbla.childNodes.length > 2) punenvar(tbla.childNodes[2].childNodes[0], ieval, Number(evt).toFixed(0));
    }
}

var memocotatii = new Array();
function noutati(rind, nr2) {
    var dn = document.getElementById('noutati');
    if (dn == null) return;
    var fcfg = dn.previousSibling;
    if (rind[1] == 'OA' || rind[1] == 'OF' || rind[1] == 'OA') return;
    if (rind[1] == 'XT' && !fcfg.fx.checked) return;
    if ((rind[1] == 'CA' || rind[1] == 'TA') && !fcfg.spot.checked) return;
    if ((rind[1] == 'CF' || rind[1] == 'TF') && !fcfg.derivate.checked) return;
    var txt = '';
    if (nr2[0] == '0') return;
    if (rind[1] == 'TA') txt = nr2[8] + ' * ' + numarcolorat(nr2[0], memocotatii[rind[2]]);
    if (rind[1] == 'TF') txt = nr2[1] + ' * ' + numarcolorat(nr2[0], memocotatii[rind[2]]);
    if (memocotatii[rind[2]] == nr2[0] && txt == '') return;
    if (' TA TF'.indexOf(rind[1]) < 0) txt = numarcolorat(nr2[0], memocotatii[rind[2]]);
    var ev = document.createElement('DIV');
    ev.innerHTML = (new Date()).toTimeString().substring(0, 8) + ' ' + simscurt(rind[2]) + ' ' + txt;
    memocotatii[rind[2]] = nr2[0];
    dn.insertBefore(ev, dn.firstChild);
    dealbit(ev, 5);
    ev.style.backgroundColor = '#EEEEDD';
    if (dn.childNodes.length > 155) dn.removeChild(dn.childNodes[dn.childNodes.length - 1]);
}

function numarcolorat(nrn, nrv) {
    try {
        if (nrv == '') return nrn;
        if (Number(nrv) < Number(nrn)) return '<span class=fxq_green title="' + nrv + '">' + nrn + '</span>';
        if (Number(nrv) > Number(nrn)) return '<span class=fxq_red title="' + nrv + '">' + nrn + '</span>';
    }
    catch (Error) { }
    return nrn;
}

function simscurt(simbol) {
    if (simbol.length < 9) return simbol;
    return simbol.substring(0, simbol.length - 5).replace('_RON_', '_').replace('_', ' ');
}

function timestampeaza(getURL) {
    var timeStamp = "timeStamp=" + (new Date()).getTime().toString();
    if (getURL.indexOf("?") == -1)
        getURL += "?";
    else
        getURL += "&";
    return getURL + timeStamp;
}

function damiacu2() {
    dd = new Date();
    return (dd.getSeconds() + 60 * dd.getMinutes());
}


function openw2(pag, w, h) {
    window.open(pag, '', 'toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=1,resizable=1,width=' + w + ',height=' + h);
    return;
};
function afiseazatab(nt) {
    var cb, i;
    for (i = 1; i < 9; i++) {
        cb = document.getElementById('tbl' + i);
        if (cb) cb.style.display = (nt == 0 || i == nt) ? 'block' : 'none';
    }
};
function cloesc() {
    if (event.keyCode == 27) window.close();
    return;
};
if (window.opener) window.document.onkeydown = cloesc;

function daRequestObject() {
    var requestObj = null;
    if (window.XMLHttpRequest) // Mozilla, Safari, Opera etc
        requestObj = new XMLHttpRequest();
    else {
        if (window.ActiveXObject) { // IE
            try { requestObj = new ActiveXObject("Msxml2.XMLHTTP"); }
            catch (e) {
                try { requestObj = new ActiveXObject("Microsoft.XMLHTTP"); }
                catch (e) { }
            }
        }
    }
    return requestObj;
}

function parintelecutag(elem, tag) {
    if (elem == null) return null;
    if (!elem.tagName) return null;
    if (elem.tagName == tag) return elem;
    return parintelecutag(elem.parentNode, tag);
}

function aratadetalii(elem) {
    if (elem == null) return;
    elem.style.display = 'none';
    elem.nextSibling.style.display = 'inline';
}


function html2numar(elem) {
    try {
        var re = /,/g;
        return Number(String(html2text(elem)).replace(re, '').replace('%', ''));
    }
    catch (Error) { }
    return 0;
}
function html2text(elem) {
    if (elem == null) return '';
    if (typeof (elem.innerHTML) == 'undefined') return '';
    var ibr = elem.innerHTML.indexOf('<br');
    if (ibr > 0) return elem.innerHTML.substring(0, ibr);
    try {
        if (typeof (elem.innerText) != "undefined") //IE
            return elem.innerText;
        else
            return elem.textContent;
    }
    catch (Error) { }
    return "999";
    // return sim.replace(/^\s*|\s*$/g, '');
}
