﻿

//Class - CFXPricePanel
function CFXPricePanel(sUserControlID /*String*/) {

    /* Private variables */
    var tdBid; //TD Array
    var tdOffer; //TD Array
    var labBid; //Span Array
    var labOffer //Span Array

    var labHigh; //Span Array
    var labLow; //Span Array
    
    var _this = this; //this instance

    /* Constructor() */
    {
        //Initialize private variables
        tdBid = new Array();
        tdOffer = new Array();
        labBid = new Array();
        labOffer = new Array();

        labHigh = new Array();
        labLow = new Array();
        
        for (var i = 1; i <= 14; i++) {
            tdBid[i - 1] = document.getElementById(sUserControlID + '_tdC' + i + 'Bid'); 
            tdOffer[i - 1] = document.getElementById(sUserControlID + '_tdC' + i + 'Offer'); 

            labBid[i - 1] = document.getElementById(sUserControlID + '_labC' + i + 'Bid');
            labOffer[i - 1] = document.getElementById(sUserControlID + '_labC' + i + 'Offer');

            labHigh[i - 1] = document.getElementById(sUserControlID + '_labC' + i + 'High');
            labLow[i - 1] = document.getElementById(sUserControlID + '_labC' + i + 'Low'); 
        }
    }
    //end of contructor

    /* public function RefreshFXPrice_Core() */ //- Refresh cross price by AJAX
    this.RefreshFXPrice_Core = function() {

        //1. Call AJAX for get US Price
        var xmlHttp = GetXmlHttpObject();

        xmlHttp.onreadystatechange = function() {
            if (xmlHttp.readyState == 4) {

                if (xmlHttp.status == 200) {
                    var sReturnContent = xmlHttp.responseText;

                    _this.UpdatePrice(sReturnContent);
                }

                xmlHttp = null;
                setTimeout(_this.RefreshFXPrice_Core, 5000);

            }
        }
        xmlHttp.open("GET", "../ajax/ajaxUSPriceDetails.aspx?type=1", true);
        xmlHttp.setRequestHeader("If-Modified-Since", "0");
        xmlHttp.send(null);
    }

    /* public UpdatePrice(String) : void */
    this.UpdatePrice = function(sPriceString) {

        var sTwoPart = sPriceString.split("@");

        //Bid Offer
        var sPriceArr = sTwoPart[0].split("#");
        for (var i = 0; i <= 13; i++)
            FullOneUSPrice(sPriceArr[i], i);

        //High Low
        var sHighLowArr = sTwoPart[1].split("#");
        for (var i = 0; i <= 13; i++)
            FullOneHighLow(sHighLowArr[i], i);
    }

    /* private FullOneHighLow(String, int) */
    function FullOneHighLow(sPriceStr, iArrIndex) {

        //sPriceStr = "1.4079 | 1.4081 | 1"
        var sArr = sPriceStr.split("|"); // {"1.4079", "1.4081"}

        //Update GUI by array
        labHigh[iArrIndex].innerHTML = sArr[0];
        labLow[iArrIndex].innerHTML = sArr[1];
    }

    /* private FullOneUSPrice(String, int) */
    function FullOneUSPrice(sPriceStr, iArrIndex) {

        //sPriceStr = "1.4079 | 1.4081 | 1"
        var sArr = sPriceStr.split("|"); // {"1.4079", "1.4081", "1"}

        if (sArr[2] == "1") { //Up
            tdBid[iArrIndex].className = "up";
            tdOffer[iArrIndex].className = "up";

        } else { //Down
            tdBid[iArrIndex].className = "down";
            tdOffer[iArrIndex].className = "down";

        }

        //Update GUI by array
        labBid[iArrIndex].innerHTML = sArr[0];
        labOffer[iArrIndex].innerHTML = sArr[1];
    }

}

