var TKC_pathRpc = 'http://www.6-chats.com/chat/rpccallsocket.php';
var TKC_rpcStatus_HCRequest = false;
var TKC_rpcStatus_chatLogout = false;
function _getFlash(mc)
{
    if (window.document[mc]) 
    {
        return window.document[mc];
    }
    if (navigator.appName.indexOf("Microsoft Internet")==-1)
    {
        if (document.embeds && document.embeds[mc]) return document.embeds[mc]; 
    }
    else
    {
        return document.getElementById(mc);
    }
}


function _callFlashMethod(methodName)
{
    var swf = _getFlash("tkc_chat_client");
    if (!swf) 
    {
        alert('flash object with id *tkc_chat_client* not found');
        return;
    }
    swf.SetVariable("/_root/externalMethodCaller:callMethod", methodName);
} 

// capturing Fscommand events
function tkc_chat_client_DoFSCommand(command, args) {
    switch (command)
    {
        case 'tkc_chatSysMessage': 
            if (tkc_chatSysMessage) { tkc_chatSysMessage(args); }
            else{
                alert ('javascript function "tkc_chatSysMessage" is not defined.');
            }
        break;
        case 'tkc_getPrivateLink': 
            if (tkc_getPrivateLink) { tkc_getPrivateLink(args);}
            else { 
                alert ('javascript function "tkc_getPrivateLink" is not defined.');
            }
        break;
        case 'tkc_getVSID': 
            if (tkc_getVSID) { tkc_getVSID(args);}
            else { 
                alert ('javascript function "tkc_getVSID" is not defined.');
            }
        break;
        case 'tkc_chatGetData': 
            if (tkc_chatGetData) { tkc_chatGetData(args); }
            else{
                alert ('javascript function "tkc_chatGetData" is not defined.');
            }
        break;

    }
}


// focus chat input field by default after the page load
function initChatFocus(flashObjectID)
{
    if (!flashObjectID) { alert('ERROR: "flashObjectID" missing!'); return };
    if (document.getElementById(flashObjectID)) {
       if (navigator.userAgent.toLowerCase().indexOf("msie") != -1){
            var x = document.getElementById(flashObjectID);
            x.focus();
        }
    }
}

// send HC request
function rpc_TKC_requestHC(wid, hash, username, sid, cam_id, funcOnData, funcOnErr) {
    if (TKC_rpcStatus_HCRequest) return;//request in progress
    if (!wid) { alert('ERROR: "wid" missing!'); return };
    if (!hash) { alert('ERROR: "hash" missing!'); return };
    if (!username) { alert('ERROR: "username" missing!'); return };
    if (!cam_id) { alert('ERROR: "cam_id" missing!'); return };
    if (!sid) { alert('ERROR: "sid" missing!'); return };
    if (!funcOnData) { alert('ERROR: "funcOnData" missing!'); return };
    if (!funcOnErr) { alert('ERROR: "funcOnErr" missing!'); return };
    var i = new Image();
    var url = TKC_pathRpc + '?mode=tkc&type=hcRequest&wid='+wid+'&cam_id='+cam_id + '&username='+username + '&sid=' + sid +'&hash='+hash ;
    url += '&timestamp=' + new Date().getTime();
    i.onload =  function() { TKC_rpcStatus_HCRequest = false; funcOnData(this.width) };
    i.onerror = function() { TKC_rpcStatus_HCRequest = false; funcOnErr () };
    i.src = url;
    TKC_rpcStatus_HCRequest = true;
    return false;
}

// clientLogout
function rpc_TKC_chatLogout(wid, hash, username, sid ) {
    if (TKC_rpcStatus_chatLogout) return;//request in progress
    if (!wid) { alert('ERROR: "wid" missing!'); return };
    if (!hash) { alert('ERROR: "hash" missing!'); return };
    if (!username) { alert('ERROR: "username" missing!'); return };
    if (!sid) { alert('ERROR: "sid" missing!'); return };
    var i = new Image();
    var url = TKC_pathRpc + '?mode=tkc&type=chatLogout&wid='+wid+'&username='+username + '&sid=' + sid + '&hash='+hash ;
    url += '&timestamp=' + new Date().getTime();
    i.onload =  function() { TKC_rpcStatus_chatLogout = false;};
    i.onerror = function() { TKC_rpcStatus_chatLogout = false;};
    i.src = url;
    TKC_rpcStatus_chatLogout = true;
    return false;
}

// RPC2 clientLogout
function rpc2_TKC_chatLogout()
{
    _callFlashMethod('socketLogout'); 
    return false;
}

// RPC2 requestHC
function rpc2_TKC_requestHC()
{
    _callFlashMethod('HCRequest');
    return false;
}
// RPC2 requestHCOne2One
function rpc2_TKC_requestHCOne2One()
{
    _callFlashMethod('request1to1HC');
    return false;
}


// RPC2 GUI: hide msg filter button
function rpc2_TKC_msgFilterButtonHide()
{
    _callFlashMethod('guiMsgFilterButtonHide');
    return false;
}
// RPC2 GUI: hide msg filter button
function rpc2_TKC_msgFilterButtonShow()
{
    _callFlashMethod('guiMsgFilterButtonShow');
    return false;
}

// RPC2 INFO: get current chat state
function rpc2_TKC_getChatState()
{
    _callFlashMethod('getChatState');
    return false;
}
// RPC2 INFO: get client coins
function rpc2_TKC_getClientCoins()
{
    _callFlashMethod('getClientCoins');
    return false;
}


