var NETVIJAUser = {
    ONLINE: 2,
    BUSY: 1,
    status: null,
    updateUserStatus: function (status) {
        this.status = status;
        if (typeof console != "undefined") console.log('User status: '+status);
        switch(status) {
            case this.ONLINE:
                NETVIJAUser.checkUserStatus();
                NETVIJAUser.checkIncomingCalls();
                break;
            case this.BUSY:
                break;
        }
    },
    checkUserStatus: function () {
        if (typeof console != "undefined") console.log('Check user status');
        if(YAHOO.util.Dom.get('number_of_sessions')) NETVIJAUser.numberOfSessions = parseInt(YAHOO.util.Dom.get('number_of_sessions').value,10);

        var callback = {
            success: function(o) {
                var el = document.createElement('div');
                el.innerHTML = o.responseText;
                if(document.getElementById('profile')) {
                    document.getElementById('container').replaceChild(el.firstChild, document.getElementById('profile'));
                }
                else if(document.getElementById('profile0')) {
                    document.getElementById('container').replaceChild(el.firstChild, document.getElementById('profile0'));
                }

                var newNumberOfSessions = 0;
                if(YAHOO.util.Dom.get('number_of_sessions')) newNumberOfSessions = parseInt(YAHOO.util.Dom.get('number_of_sessions').value,10);

                if (newNumberOfSessions > NETVIJAUser.numberOfSessions)
                {
                    NETVIJA.ringSound.play();
                    window.focus();
                }

                NETVIJAUser.numberOfSessions = newNumberOfSessions;

                window.setTimeout(NETVIJAUser.checkUserStatus, 10000);
            },
            failure: function(o) {
                window.setTimeout(NETVIJAUser.checkUserStatus, 2000);
            }
        }
        var transaction = YAHOO.util.Connect.asyncRequest('POST', NETVIJA.routes.updateUserStatus, callback, null);
    },

    checkIncomingCalls: function () {
        if (typeof console != "undefined") console.log('Check incoming calls');
        var callback = {
            success: function(o) {
                if(YAHOO.lang.JSON.isValid(o.responseText)) {
                    var call = YAHOO.lang.JSON.parse(o.responseText);

                    if(call.call_id) {
                        NETVIJAExpert.acceptIncomingCall(call.call_id, call.caller_name, call.caller_key);
                    }
                    else {
                        setTimeout(function() {
                            NETVIJAUser.checkIncomingCalls();
                        },15000);
                    }
                }
                else {
                    setTimeout(function() {
                        NETVIJAUser.checkIncomingCalls();
                    },15000);
                }
            },
            failure: function(o) {
                setTimeout(function() {
                    NETVIJAUser.checkIncomingCalls();
                },15000);
            }
        }
    
        if(NETVIJA.routes.incomingCallWait  != undefined) {
            var transaction = YAHOO.util.Connect.asyncRequest('GET', NETVIJA.routes.incomingCallWait, callback, null);
        }
    }
};



function showSessionIcon(id)
{
    var icons = YAHOO.util.Dom.getChildren('new_session_list');
    for (var i=1;i<=window.numberOfSessions;i++)
    {
        var elements = new Array('session_'+i+'_icon','session_'+i+'_button')
        if (i != id) YAHOO.util.Dom.removeClass(elements,'selected');
        else YAHOO.util.Dom.addClass(elements,'selected');
    }
    window.selectedSessionIcon = id;
}


