﻿

function AjaxRequestURL(div, url) {
    var obj = document.getElementById(div); if (obj)
    { obj.innerHTML = "<img src='/Images/loading.gif'/>" } var xmlHttp; try { if (!document.all) { xmlHttp = new XMLHttpRequest() } else { try { xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") } catch (e) { xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") } } } catch (e) { alert("Your browser does not support AJAX!"); return false }; xmlHttp.onreadystatechange = function() {
        if (xmlHttp.readyState == 4) {
            if (obj)
                obj.innerHTML = xmlHttp.responseText
        }
    }; xmlHttp.open("GET", url, true); xmlHttp.send(null)
}

function AjaxRequestJson(url, fnc)
 {     
         var xmlHttp; 
         try 
         { 
            if (!document.all) 
            { 
                xmlHttp = new XMLHttpRequest() ;
            } 
            else 
            { 
                try 
                { 
                    xmlHttp = new ActiveXObject("Msxml2.XMLHTTP") ;
                } 
                catch (e) 
                { 
                    xmlHttp = new ActiveXObject("Microsoft.XMLHTTP") ;
                } 
             } 
          } 
          catch (e) 
          { 
                alert("Your browser does not support AJAX!"); return false 
          }; 
          
          xmlHttp.onreadystatechange = function()
          {
                if (xmlHttp.readyState == 4) 
                {
                    fnc = eval(fnc); 
                    fnc(eval(xmlHttp.responseText));
                }
          }; 
          xmlHttp.open("GET", url, true); 
          xmlHttp.send(null);
}   
function $(id)
{
    return document.getElementById(id);
}
var RefreshTimeOut = 60000;
var IsFirstRequest = true;

function RequestHomeIndex()
{
    var now = new Date();
    var dateRandom =  now.toDateString() + now.toTimeString();
    var url = '/Data/HomeIndex.ashx?upd=' + dateRandom;
    AjaxRequestJson(url,'UpdateHomeIndex');
//    var urlIndex = '/Data/HomeIndex.ashx?type=index&upd=' + dateRandom;
//    if (IsStockTrading() || (!IsStockTrading() && IsFirstRequest))
//    {
//        AjaxRequestJson(urlIndex, 'UpdateDisplay_Index');
//	}
}

function UpdateHomeIndex(data)
{
     if(data==null)
        return;
    try{ UpdateDisplay_SJC(data.SJC); }catch(e){}
    try{ UpdateDisplay_Oil(data.OilMarket); }catch(e){}
    try { UpdateDisplay_SBJ(data.SBJ_Current); } catch (e) { }
    try { UpdateDisplay_USD_EUR(data.USD, 'vUSD', 'vimgUSD'); } catch (e) { }
    try { UpdateDisplay_USD_EUR(data.EUR, 'vEUR', 'vimgEUR'); } catch (e) { }
    
    setTimeout('RequestHomeIndex()', RefreshTimeOut);
}
// -----------------------
function UpdateDisplay_Oil(dataOil)
{
     if(dataOil==null)
        return;
    var change_image = '';
    var change_usd = '';
    var price_Change_Oil = '';
    var price_Change_USD = '';
    var sign = '';
    if (dataOil.Change > 0)
    {
        change_image = 'imgIndexUp';
        sign = '+';
    }
    else if (dataOil.Change < 0)
    {
        change_image = 'imgIndexDown';
        sign = '-';
    }
    else
    {
        change_image = 'imgIndexNochange';
    }
  
    document.getElementById('vimgOil').className = change_image;
    price_Change_Oil = FormatNumber(dataOil.Price, true) + '&nbsp;<span class="t_' + change_image + '">' + sign + FormatNumber(dataOil.Change, true) + '(' + FormatNumber(dataOil.ChangePercent, true) + '%)</span>'; 
    UpdateValue('vCrude', price_Change_Oil, false);
    
}
// -----------------------
function UpdateDisplay_SJC(data)
{
     if(data==null)
        return;
    var change_image = '';
    var price_Change = '';
    var price_ChangeBuy = '';
    var sign = '';
    if (data.ChangeBuy > 0)
    {
        change_image = 'imgIndexUp';
        sign = '+';
    }
    else if (data.ChangeBuy < 0)
    {
        change_image = 'imgIndexDown';
        sign = '-';
    }
    else
    {
        change_image = 'imgIndexNochange';
    }
    price_ChangeBuy = 'Buy: ' + FormatNumber(data.Buy, true) + '&nbsp;<span class="t_' + change_image + '">' + sign + FormatNumber(data.ChangeBuy, true) + '</span>';
     
    document.getElementById('vimgSJC').className = change_image;
    UpdateValue('vSJC', price_ChangeBuy, false);
}

// -----------------------
function UpdateDisplay_SBJ(data)
{
     if(data==null)
            return;
    var change_image = '';
    var price_ChangeBuy = '';
    var sign = '';
    
    if (data.ChangeBuy > 0)
    {
        change_image = 'imgIndexUp';
        sign = '+';
    }
    else if (data.ChangeBuy < 0)
    {
        change_image = 'imgIndexDown';
        sign = '-';
    }
    else
    {
        change_image = 'imgIndexNochange';
    }
    price_ChangeBuy = 'Buy: ' + FormatNumber(data.BuyPrice, true) + '&nbsp;<span class="t_' + change_image + '">' + sign + FormatNumber(data.ChangeBuy, true) + '</span>';
     
    document.getElementById('vimgSBJ').className = change_image;
    UpdateValue('vSBJ', price_ChangeBuy, false);
}

// -----------------------
function UpdateDisplay_USD_EUR(data,id,img) {
    if (data == null)
        return;
    var change_image = '';
    var price_Change = '';
    var price_ChangeBuy = '';
    var sign = '';
    if (data.Change > 0) {
        change_image = 'imgIndexUp';
        sign = '+';
    }
    else if (data.Change < 0) {
        change_image = 'imgIndexDown';
        sign = '-';
    }
    else {
        change_image = 'imgIndexNochange';
    }
    price_ChangeBuy = 'Buy: ' + FormatNumber(data.BuyCash, true) + '&nbsp;<span class="t_' + change_image + '">' + sign + FormatNumber(data.Change, true) + '</span>';

    document.getElementById(img).className = change_image;
    UpdateValue(id, price_ChangeBuy, false);
}
// ============================================================================================
function UpdateDisplay_Index(data) 
{
    if(data==null)
        return;
    var imageVnIndex = '';
    var imageHaIndex = '';
    var VnIndex_Change = '';
    var HaIndex_Change = '';
    // VNIndex
    VnIndex_Change = FormatNumber(data.VNIndex_Index, true);
    if (data.VNIndex_Change > 0)
    {
        VnIndex_Change = VnIndex_Change + '&nbsp;<span class="t_imgIndexUp">+' + FormatNumber(data.VNIndex_Change, true) + '(+' + FormatNumber(data.VNIndex_ChangePercent, true) + '%)</span>';
        imageVnIndex = 'imgIndexUp';
    }
    else if (data.VNIndex_Change < 0)
    {
        VnIndex_Change = VnIndex_Change + '&nbsp;<span class="t_imgIndexDown">' + FormatNumber(data.VNIndex_Change, true) + '(' + FormatNumber(data.VNIndex_ChangePercent, true) + '%)</span>';
        imageVnIndex = 'imgIndexDown';
    }
    else
    {
        VnIndex_Change = VnIndex_Change + '&nbsp;<span class="t_imgIndexNochange">0(0%)</span>';
        imageVnIndex = 'imgIndexNochange';
    }
    var objindex=document.getElementById('vimgVN');
    if(objindex!=null)
    {
         objindex.className = imageVnIndex;
     }
    UpdateValue('vVN', VnIndex_Change, false);
    
    // HaSTCIndex
    HaIndex_Change = FormatNumber(data.HaSTCIndex_Index, true);
    if (data.HaSTCIndex_Change > 0)
    {
        HaIndex_Change = HaIndex_Change + '&nbsp;<span class="t_imgIndexUp">+' + FormatNumber(data.HaSTCIndex_Change, true) + '(+' + FormatNumber(data.HaSTCIndex_ChangePercent, true) + '%)</span>';
        imageHaIndex = 'imgIndexUp';
    }
    else if (data.HaSTCIndex_Change < 0)
    {
        HaIndex_Change = HaIndex_Change + '&nbsp;<span class="t_imgIndexDown">' + FormatNumber(data.HaSTCIndex_Change, true) + '(' + FormatNumber(data.HaSTCIndex_ChangePercent, true) + '%)</span>';
        imageHaIndex = 'imgIndexDown';
    }
    else
    {
        HaIndex_Change = HaIndex_Change + '&nbsp;<span class="t_imgIndexNochange">0(0%)</span>';
        imageHaIndex = 'imgIndexNochange';
    }
     var objindex=document.getElementById('vimgHNX');
    if(objindex!=null)
    {
         objindex.className = imageHaIndex;
     }
    UpdateValue('vHNX', HaIndex_Change, false);
    
}
function UpdateValue(id, value, highlight)
{
    if (document.getElementById(id))
    {
            document.getElementById(id).innerHTML = value;
            if (highlight)
            {
                HighlightField(id);
            }
    }
}
function HighlightField(id)
{
    
    var obj = document.getElementById(id);
    if (obj)
    {
        obj.style.backgroundColor = '#333333';
    }
    setTimeout('RemoveHighlightField(\'' + id + '\')', HighlightTimeOut);
}
function RemoveHighlightField(id)
{
    var obj = document.getElementById(id);
    
    if (obj)
    {
        obj.style.backgroundColor = '#000000';
    }
}

function FormatNumber(value, displayZero)
{
    if (value == '') return (displayZero ? '0' : '');
    try
    {
        var number = parseFloat(value);
        value = FormatNumber1(number, 2, '.', ',');
        return (value);
    }
    catch (err)
    {
        return (displayZero ? '0' : '');
    }
}
function FormatNumber1(number, decimals, decimalSeparator, thousandSeparator) 
{
    var number = number.toFixed(decimals);
    
    var temp = number.toString();
    
    var f = temp.substr(temp.length - decimals, decimals);
    
    while (f != '' && f.charAt(f.length - 1) == '0') f = f.substr(0, f.length - 1);
    
    if (f != '') f = decimalSeparator + f;
    
    var t = temp.substr(0, temp.length - 3);
    
    if (thousandSeparator != '' && t.length > 3) 
	{
		h = t;
		t = '';
		
		for (j = 3; j < h.length; j += 3) 
		{
			i = h.slice(h.length - j, h.length - j + 3);
			t = thousandSeparator + i +  t + '';
		}
		
		j = h.substr(0, (h.length % 3 == 0) ? 3 : (h.length % 3));
		t = j + t;
	}
	
	temp = t + f;
	
    return temp.replace('-,', '-');;
}

var CurrentDateTime = new Date();
var StockTrading_StartTime = '08:00:00';
var StockTrading_EndTime = '11:00:59';
var StockTrading_DayOfWeek = '1,2,3,4,5';

function IsStockTrading()
{
    if (!CurrentDateTime) return false;
    
    var startTime = new Date();
    var endTime = new Date();
    var now = CurrentDateTime;
    var day = ',' + StockTrading_DayOfWeek + ',';
    
    var start = StockTrading_StartTime.split(':');
    var end = StockTrading_EndTime.split(':');
    
    startTime.setFullYear(now.getFullYear(), now.getMonth(), now.getDate());
    startTime.setHours(start[0], start[1], start[2]);
    endTime.setFullYear(now.getFullYear(), now.getMonth(), now.getDate());
    endTime.setHours(end[0], end[1], end[2]);
    
    return (now >= startTime && now <= endTime && day.indexOf(',' + now.getDay() + ',') >= 0);
}


