function send_call (caller_obj, controller_name) {
this.caller_obj      = caller_obj;
this.controller_name = controller_name;
this.call;
this.urlVars = "";
this.nojax = '&nojax=true';

  if (typeof send_call._initialized == "undefined") {
    

   	/*
      Set the send call
    */
    send_call.prototype.send = function (ajax_support) {
      var this_obj = this; 
      ////////////////////////////////////////////////////////////////////////
    	var handleSuccess = function(o) { this_obj.caller_obj.return_call(o.responseText, this_obj.call) };
      ////////////////////////////////////////////////////////////////////////
      if(ajax_support){   						
        YAHOO.util.Connect.asyncRequest('GET', '/'+this.controller_name+'.hj?'+this.controller_name+'='+this.call+this.urlVars, {
            success: function(o) {  handleSuccess(o);  },
            failure: function(o) {  this_obj.handleFailure(o);  }
        });
      }else{
        var oIFrame = null;
        ////////////////////////////////////////////////////////////////////////
        var createIFrame = function() {
           var oIFrameElement = document.createElement("iframe");
           oIFrameElement.style.display = "none";
           oIFrameElement.name = "hiddenFrame";
           oIFrameElement.id = "hiddenFrame";
           document.body.appendChild(oIFrameElement); 
           oIFrame = frames["hiddenFrame"];
        };
        ////////////////////////////////////////////////////////////////////////
        var getFrame = function() {
          if (!oIFrame) {
            createIFrame();
            setTimeout(getFrame, 10);
            return;
          }
          oIFrame.location = '/'+this_obj.controller_name+'.hj?'+this_obj.controller_name+'='+this_obj.call+this_obj.urlVars+this_obj.nojax;
        }
        ////////////////////////////////////////////////////////////////////////
        getFrame(); 
      }                   
    }
    	
    
    /*
      Set the send call
    */
    send_call.prototype.set_call = function (call) {
      this.call = call;
    }
    
    /*
      Set the nojax var
    */
    send_call.prototype.set_nojax_var = function (nojax) { 
      this.nojax = nojax;
    }
    
    /*
      Set the Urls for the ajax get link
    */
    send_call.prototype.set_url_vars = function (passvars) {
       this.urlVars = "";
       for (key in passvars)  {    
         this.urlVars = this.urlVars+"&"+key+"="+passvars[key];
       }
    }
    
    /*
       Ajax Failure Function
    */
    send_call.prototype.handleFailure = function (o) {}
    
    
    send_call._initialized = true;
  }  
  
}  
