var IFrameRequest = Class.create();
IFrameRequest.reqCount = 0;
IFrameRequest.prototype = {
  initialize: function() {
    this.readyState = 0;
    this.status = 0;
    this.responseText = "";    
    IFrameRequest.reqCount++;
    this.req_id = IFrameRequest.reqCount;
  },
  
  open: function(protocol, url, async) {
    this.protocol = protocol;
    this.url = url;  
  },
  
  onreadystatechange: function() { },
  
  send: function(postBody) {
    var self = this;    
    if(this.protocol.toUpperCase()=='POST')
    {
      this.url = this.url + "&" + postBody;
    }
    var IFrameDoc = document.createElement('iframe');
    IFrameDoc.setAttribute('id', 'req'+this.req_id);
    IFrameDoc.setAttribute('name', 'req'+this.req_id);
    IFrameDoc.style.width = "0";IFrameDoc.style.height = "0";IFrameDoc.style.border = "0";          
    document.body.appendChild(IFrameDoc);    
    
    try {
      IFrameDoc.src = this.url;   
    }
    catch(e)
    {
      return false;
    }
 
    this.readyState = 1; this.onreadystatechange();
 
    setTimeout(function(){self.IFht(4);}, 4);     
  },
  
  overrideMimeType: function() { },
  
  getResponseHeader: function (name) { return ''; },
  
  setRequestHeader: function (name, data) { },
  
  IFht: function (d) { var self=this;var el=$('req'+self.req_id); if(el.readyState=='complete') { self.responseText = document.frames['req'+self.req_id].document.body.innerHTML.replace(/[\n\r]+/ig, ""); el.parentNode.removeChild(el); self.status = 200; self.readyState = 4; self.onreadystatechange(); }else{ d*=1.5; setTimeout(function(){self.IFht(d);},d); } }
};