/// <reference path="LaunchNetClientContext.js"/>

function ClientProxyServices()
{
  this.GetServiceClientProxy = GetServiceClientProxy;
  this.GetServiceProviders = GetServiceProviders;
  

  function GetServiceProviders()
  {
    if (__serviceProviders.length > 0)
    {
      return __serviceProviders.split('|');
    }
    else
    {
      return new Array();
    }
  }

  function GetServiceClientProxies()
  {
    if (__serviceClientProxies.length > 0)
    {
      return __serviceClientProxies.split('|');
    }
    else
    {
      return new Array();
    }
  }

  function UsingService(serviceName)
  {
    var usingService = false;
    
    serviceProviderArray = GetServiceProviders();
    
    for (var i = 0; i < serviceProviderArray.length; i++)
    {
      if (serviceProviderArray[i] == serviceName)
      {
        usingService = true;
        break;
      }
    }
    
    return usingService;
  }

  function GetServiceClientProxy(serviceName)
  {
    serviceProviderArray = GetServiceProviders();
    serviceClientProxiesArray = GetServiceClientProxies();
    
    var serviceClientProxyName = '';
    
    for (var i = 0; i < serviceProviderArray.length; i++)
    {
      if (serviceProviderArray[i] == serviceName)
      {
        serviceClientProxyName = serviceClientProxiesArray[i];
      }
    }
    
    var serviceClientProxy = null;
    
    if (serviceClientProxyName.length > 0)
    {
      if (eval('typeof(' + serviceClientProxyName + ') != "undefined"'))
      {
        serviceClientProxy = eval(serviceClientProxyName);
      }
    }

    if (serviceClientProxy == null)
    {
      __context.ThrowError("Client proxy " + serviceClientProxyName + " for " + serviceName + " is null.  Please define in Web.config");
    }

    return serviceClientProxy;
  }
}
