﻿/***********************General***************************/
function GeneralServices_GetCountryAreaCode(CountryCode, callback) {
    var params = new Array();

    params[0] = 'CountryCode';
    params[1] = CountryCode;

    var result = HTTPRequest("/Services/GeneralServices.asmx", "", "GetCountryAreaCode", params, 
                                                                                                (callback != null ?
                                                                                                 function(result) {
                                                                                                     if (callback != null)
                                                                                                         callback(evalHttpResponseText(result));
                                                                                                 }
                                                                                                 : null)
                             );
    if (callback == null)
        return evalHttpResponseText(result);
}

function GeneralServices_SendLeadContact(PH, email, firstName, lastName, countryCode, LPID,referrer, callback) {
    var params = new Array();

    params.push('PH');
    params.push(PH);

    params.push('email');
    params.push(email);

    params.push('firstName');
    params.push(firstName);

    params.push('lastName');
    params.push(lastName);

    params.push('countryCode');
    params.push(countryCode);

    params.push('LPID');
    params.push(LPID);
    
    params.push('Referrer');
    params.push(referrer);

    var result = HTTPRequest("/Services/GeneralServices.asmx", "", "SendLeadContact", params, 
                                                                                            (callback != null ?
                                                                                             function(result) {
                                                                                                if (callback != null)
                                                                                                    callback(evalHttpResponseText(result));
                                                                                             } : null)
                            );
    if (callback == null)
        return evalHttpResponseText(result);
}

/***********************General***************************/
/***********************Users***************************/
function UserServices_AuthUser(username, password, callback) {
    var params = new Array();
    params[0] = 'userName';
    params[1] = username;

    params[2] = 'password';
    params[3] = password;

    var result = HTTPRequest("/Services/Users.asmx", "", "AuthUser", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') 
            callback(eval(result.text));
        else 
            callback(eval(result.textContent));
    }
    );

}

/*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/

function UserServices_GetFreshUser(sessionID, callback) {
    var params = new Array();
    params[0] = 'sessionID';
    params[1] = sessionID;

    var result = HTTPRequest("/Services/Users.asmx", "", "GetFreshUser", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') 
            callback(eval(result.text));
        else 
            callback(eval(result.textContent));
    }
    );

}
/*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/

function UserServices_LogoutUser(sessionID, callback) {
    var params = new Array();
    params[0] = 'sessionID';
    params[1] = sessionID;

    var result = HTTPRequest("/Services/Users.asmx", "", "LogoutUser", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') 
            callback(eval(result.text));
        else 
            callback(eval(result.textContent));
    }
    );
}
/***********************Users***************************/
/***********************Trades***************************/
function TradeServices_StopTradeOrder(orderID, offerID, callback) {
    var params = new Array();
    params[0] = 'sessionID';
    params[1] = m_session;
    
    params[2] = 'orderID';
    params[3] = orderID;

    params[4] = 'offerID';
    params[5] = offerID;

    var result = HTTPRequest("/Services/Trade.asmx", "", "StopTradeOrder", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') 
            callback(eval(result.text));
        else 
            callback(eval(result.textContent));
    }
    );
}
function TradeServices_ExtendTradeOrder(orderID, offerID, callback) {
    var params = new Array();
    params[0] = 'orderID';
    params[1] = orderID;

    params[2] = 'offerID';
    params[3] = offerID;

    var result = HTTPRequest("/Services/Trade.asmx", "", "ExtendTradeOrder", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') 
            callback(eval(result.text));
        else 
            callback(eval(result.textContent));
    }
    );
}
function TradeServices_GetStopTradeOrderPremium(orderID) {
    var params = new Array();
    params[0] = 'orderID';
    params[1] = orderID;

    var result = HTTPRequest("/Services/Trade.asmx", "", "GetStopTradeOrderPremium", params);
    if (result == null)
        return (null);
    else if (typeof (result.textContent) == 'undefined') 
        return (eval(result.text));
    else 
        return (eval(result.textContent));
    
}
function TradeServices_GetExtendTradeOrderOptions(orderID, optionID) {
    var params = new Array();
    params[0] = 'orderID';
    params[1] = orderID;

    params[2] = 'optionID';
    params[3] = optionID;

    var result = HTTPRequest("/Services/Trade.asmx", "", "GetExtendTradeOrderOptions", params);
    if (result == null)
        return (null);
    else if (typeof (result.textContent) == 'undefined') {
        return (eval(result.text));
    }
    else {
        return (eval(result.textContent));
    }
}

function TradeServices_GetExtandTradeOrderPremium(orderID, targetOptionID) {
    var params = new Array();
    params[0] = 'orderID';
    params[1] = orderID;

    params[2] = 'targetOptionID';
    params[3] = targetOptionID;

    var result = HTTPRequest("/Services/Trade.asmx", "", "GetExtandTradeOrderPremium", params);
    if (result == null)
        return (null);
    else if (typeof (result.textContent) == 'undefined') {
        return (eval(result.text));
    }
    else {
        return (eval(result.textContent));
    }
}
function TradeServices_GetTradeStartTimes(gameType) {
    var params = new Array();
    params[0] = 'gameType';
    params[1] = gameType;

    var result = HTTPRequest("/Services/Trade.asmx", "", "GetTradeStartTimes", params);
    if (result == null)
        return (null);
    else if (typeof (result.textContent) == 'undefined') {
        return (eval(result.text));
    }
    else {
        return (eval(result.textContent));
    }
}

function TradeServices_GetFilteredTradeStartTimes(gameType, market) {
    var params = new Array();
    params[0] = 'gameType';
    params[1] = gameType;

    params[2] = 'market';
    params[3] = market;

    var result = HTTPRequest("/Services/Trade.asmx", "", "GetFilteredTradeStartTimes", params);
    if (result == null)
        return (null);
    else if (typeof (result.textContent) == 'undefined') {
        return (eval(result.text));
    }
    else {
        return (eval(result.textContent));
    }
}

function TradeServices_AddBinaryTradeOrder(sessionID, optionID, isCall, rate, volume, callback) {
    if ((Number(volume) == "NaN") || (Number(volume) <= 0)) {
        ShowMsgbox(getServerResource("TradeRoom_InvalidInvestAmount"));
        return;
    }
    var params = new Array();
    var i = 0;
    params[i++] = 'sessionID';
    params[i++] = sessionID;

    params[i++] = 'optionID';
    params[i++] = optionID;

    params[i++] = 'isCall';
    params[i++] = isCall;

    params[i++] = 'rate';
    params[i++] = rate;

    params[i++] = 'volume';
    params[i++] = volume;

    var result = HTTPRequest("/Services/Trade.asmx", "", "AddBinaryTradeOrder", params,
        function(result) {
        
        callback(evalHttpResponseText(result));
            
        }
    );
}

function TradeServices_AddTouchTradeOrder(sessionID, optionID, isUP, rate, volume, callback) {
    if ((Number(volume) == "NaN") || (Number(volume) <= 0)) {
        ShowMsgbox(getServerResource("TradeRoom_InvalidInvestAmount"));
        return;
    }
    var params = new Array();
    var i = 0;
    params[i++] = 'sessionID';
    params[i++] = sessionID;

    params[i++] = 'optionID';
    params[i++] = optionID;

    params[i++] = 'isUP';
    params[i++] = isUP;

    params[i++] = 'isTouch';
    params[i++] = true;

    params[i++] = 'rate';
    params[i++] = rate;

    params[i++] = 'volume';
    params[i++] = volume;

    var result = HTTPRequest("/Services/Trade.asmx", "", "AddTouchTradeOrder", params,
    function(result) {


        if (result == null)
            callback(null);
        else {
            if (result.text == '("")') {
                switchGraph_TraderOrderBlock('Graph');
                mUp('closeGraph');
            }

            if (typeof (result.textContent) == 'undefined') {
                callback(eval(result.text));
            }
            else {
                callback(eval(result.textContent));
            }
        }
    }
    );
}

function TradeServices_CheckOptionsExpiredRate(sessionID, optionIDs, callback) {
    var params = new Array();
    var i = 0;
    params[i++] = 'sessionID';
    params[i++] = sessionID;

    params[i++] = 'optionIDs';
    params[i++] = optionIDs;

    var result = HTTPRequest("/Services/Trade.asmx", "", "CheckOptionsExpiredRate", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') {
            callback(eval(result.text));
        }
        else {
            callback(eval(result.textContent));
        }
    }
    );
}
/***********************Trades***************************/
/***********************Quotes***************************/
function QuoteServices_GetOptionPrice(optionID) {
    var params = new Array();
    params[0] = 'strRequest';
    params[1] = optionID;

    var result = HTTPRequest("/Services/Quotes.asmx", "", "GetOptionPrices", params);
    if (result == null)
        return (null);
    else if (typeof (result.textContent) == 'undefined') {
        return (eval(result.text));
    }
    else {
        return (eval(result.textContent));
    }

}

/*\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\*/

function QuoteServices_GetQuotesDic(reqStr, callback) {
    var params = new Array();
    params[0] = 'strRequest';
    params[1] = reqStr;

    var result = HTTPRequest("/Services/Quotes.asmx", "", "GetQuotesDic", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') {
            callback(eval(result.text));
        }
        else {
            callback(eval(result.textContent));
        }
    }
    );

}

function QuoteServices_GetJoinedPrices(optionsReqStr, assetsReqStr, callback) {
    var params = new Array();
    params[0] = 'optionsStrRequest';
    params[1] = optionsReqStr;

    params[2] = 'assetsStrRequest';
    params[3] = assetsReqStr;

    var result = HTTPRequest("/Services/Quotes.asmx", "", "GetJoinedPrices", params,
    function(result) {
        if (result == null)
            callback(null);
        else if (typeof (result.textContent) == 'undefined') {
            callback(eval(result.text));
        }
        else {
            callback(eval(result.textContent));
        }
    }
    );
}
/***********************Quotes***************************/