﻿var IChatService = function() {
    IChatService.initializeBase(this);
    this._timeout = 0;
    this._userContext = null;
    this._succeeded = null;
    this._failed = null;
}
IChatService.prototype = {
    _get_path: function() {
        var p = this.get_path();
        if (p) return p;
        else return IChatService._staticInstance.get_path();
    },
    Register: function(fullName, email, initialMessage, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'Register', false, { fullName: fullName, email: email, initialMessage: initialMessage }, succeededCallback, failedCallback, userContext);
    },
    AgentRegister: function(fullName, email, initialMessage, ToAgent, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'AgentRegister', false, { fullName: fullName, email: email, initialMessage: initialMessage, ToAgent: ToAgent }, succeededCallback, failedCallback, userContext);
    },
    SendMessage: function(userId, message, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'SendMessage', false, { userId: userId, message: message }, succeededCallback, failedCallback, userContext);
    },
    GetMessages: function(userId, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetMessages', false, { userId: userId }, succeededCallback, failedCallback, userContext);
    },
    GetComposingState: function(userId, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetComposingState', false, { userId: userId }, succeededCallback, failedCallback, userContext);
    },
    GetComposingStateCount: function(userId, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetComposingStateCount', false, { userId: userId }, succeededCallback, failedCallback, userContext);
    },
    UnRegister: function(userId, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'UnRegister', false, { userId: userId }, succeededCallback, failedCallback, userContext);
    },
    GetServiceState: function(succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetServiceState', false, {}, succeededCallback, failedCallback, userContext);
    },
    GetAgentState: function(AgentID, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetAgentState', false, { AgentID: AgentID }, succeededCallback, failedCallback, userContext);
    },
    GetAgentsState: function(AgentIDs, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetAgentsState', false, { AgentIDs: AgentIDs }, succeededCallback, failedCallback, userContext);
    },
    GetAgentGroupState: function(GroupID, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetAgentGroupState', false, { GroupID: GroupID }, succeededCallback, failedCallback, userContext);
    },
    GetTrace: function(type, parm, succeededCallback, failedCallback, userContext) {
        return this._invoke(this._get_path(), 'GetTrace', false, { type: type, parm: parm }, succeededCallback, failedCallback, userContext);
    } 
}
IChatService.registerClass('IChatService', Sys.Net.WebServiceProxy);
IChatService._staticInstance = new IChatService();
IChatService.set_path = function(value) { IChatService._staticInstance.set_path(value); }
IChatService.get_path = function() { return IChatService._staticInstance.get_path(); }
IChatService.set_timeout = function(value) { IChatService._staticInstance.set_timeout(value); }
IChatService.get_timeout = function() { return IChatService._staticInstance.get_timeout(); }
IChatService.set_defaultUserContext = function(value) { IChatService._staticInstance.set_defaultUserContext(value); }
IChatService.get_defaultUserContext = function() { return IChatService._staticInstance.get_defaultUserContext(); }
IChatService.set_defaultSucceededCallback = function(value) { IChatService._staticInstance.set_defaultSucceededCallback(value); }
IChatService.get_defaultSucceededCallback = function() { return IChatService._staticInstance.get_defaultSucceededCallback(); }
IChatService.set_defaultFailedCallback = function(value) { IChatService._staticInstance.set_defaultFailedCallback(value); }
IChatService.get_defaultFailedCallback = function() { return IChatService._staticInstance.get_defaultFailedCallback(); }
IChatService.set_path("/Services/ChatService.svc");
IChatService.Register = function(fullName, email, initialMessage, onSuccess, onFailed, userContext) { IChatService._staticInstance.Register(fullName, email, initialMessage, onSuccess, onFailed, userContext); }
IChatService.AgentRegister = function(fullName, email, initialMessage, ToAgent, onSuccess, onFailed, userContext) { IChatService._staticInstance.AgentRegister(fullName, email, initialMessage, ToAgent, onSuccess, onFailed, userContext); }
IChatService.SendMessage = function(userId, message, onSuccess, onFailed, userContext) { IChatService._staticInstance.SendMessage(userId, message, onSuccess, onFailed, userContext); }
IChatService.GetMessages = function(userId, onSuccess, onFailed, userContext) { IChatService._staticInstance.GetMessages(userId, onSuccess, onFailed, userContext); }
IChatService.GetComposingState = function(userId, onSuccess, onFailed, userContext) { IChatService._staticInstance.GetComposingState(userId, onSuccess, onFailed, userContext); }
IChatService.GetComposingStateCount = function(userId, onSuccess, onFailed, userContext) { IChatService._staticInstance.GetComposingStateCount(userId, onSuccess, onFailed, userContext); }
IChatService.UnRegister = function(userId, onSuccess, onFailed, userContext) { IChatService._staticInstance.UnRegister(userId, onSuccess, onFailed, userContext); }
IChatService.GetServiceState = function(onSuccess, onFailed, userContext) { IChatService._staticInstance.GetServiceState(onSuccess, onFailed, userContext); }
IChatService.GetAgentState = function(AgentID, onSuccess, onFailed, userContext) { IChatService._staticInstance.GetAgentState(AgentID, onSuccess, onFailed, userContext); }
IChatService.GetAgentsState = function(AgentIDs, onSuccess, onFailed, userContext) { IChatService._staticInstance.GetAgentsState(AgentIDs, onSuccess, onFailed, userContext); }
IChatService.GetAgentGroupState = function(GroupID, onSuccess, onFailed, userContext) { IChatService._staticInstance.GetAgentGroupState(GroupID, onSuccess, onFailed, userContext); }
IChatService.GetTrace = function(type, parm, onSuccess, onFailed, userContext) { IChatService._staticInstance.GetTrace(type, parm, onSuccess, onFailed, userContext); }
var gtc = Sys.Net.WebServiceProxy._generateTypedConstructor;
if (typeof (Message) === 'undefined') {
    var Message = gtc("Message:http://schemas.datacontract.org/2004/07/");
    Message.registerClass('Message');
}
if (typeof (AgentState) === 'undefined') {
    AgentState = function() { throw Error.invalidOperation(); }
    AgentState.prototype = { Unknown: 0, Offline: 1, Online: 2, Busy: 3, Away: 4 }
    AgentState.registerEnum('AgentState', true);
}
