<!--

 /******************************************************
  * JSON client for communicating with remote services
  ******************************************************/

  
    var Json = new Object();

   /**
    * Perform a call to remote service using JSON
    * @param string method name of remote service method
    * @param array params list of parameters to pass
    * @param mixed callback function or name of callback function
    */
    Json.call = function (method, params, callback)
    {
        var service;

        // Create native request object
        if (window.XMLHttpRequest)
            service = new XMLHttpRequest();

        // Create ActiveX request object
        else if (window.ActiveXObject)
        {
            try
            {
                service = new ActiveXObject('Msxml2.XMLHTTP');
            }
            catch(e)
            {
                service = new ActiveXObject('Microsoft.XMLHTTP');
            }
        }

        // Could not create request object
        if (!service)
            return;

        // Create event handler to wait for a response
        service.onreadystatechange = function()
        {
            // Parse response when ready
            if (service.readyState == 4)
            {
                var result = '';

                if (service.responseText.length)
                    eval('result = ' + service.responseText + ';');

                callback(result);
            }
        };

        service.open('POST', 'http://monet.sempre.fi/json/', true);
        service.send(Common.getAsString({methodName:method, params:params}));
    };


// -->

