/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

if (typeof(JsonWebServicesStub)=='undefined') {

  JsonWebServicesStub = { 

    requestCounter : 0,

    responseCallbacks : [],

    headElem : document.getElementsByTagName('head').item(0),

    invoke : function (url, callback) {
      var callbackParam = arguments[2] || 'callback';
      var script = document.createElement('script');
      var index = JsonWebServicesStub.requestCounter++;
      JsonWebServicesStub.responseCallbacks[index] = function() {
        //delete JsonWebServicesStub.responseCallbacks[index];
        if (arguments.length==1) {
          //callback(arguments[0]);
          window[callback](arguments[0])
        } else {
          var arry = [];
          for (var i=0; i<arguments.length; i++) 
            arry[arry.length] = arguments[i];
          //callback(arry);
          window[callback](arry);
        }
        //script.parentNode.removeChild(script);
      }
      var callUrl = url.indexOf('?') > 0 ? url+'&' : url+'?';
      callUrl += callbackParam+'='+escape('JsonWebServicesStub.responseCallbacks['+index+']');
      // disable browser cache ..
      //callUrl += '&rand='+Math.random();
      script.src = callUrl;
      script.type = 'text/javascript';
      script.charset = 'utf-8';
      JsonWebServicesStub.headElem.appendChild(script);
    }

  };

}
